Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ograniczenie wyrażenia regularnego
Forum PHP.pl > Forum > Przedszkole
czernin
Witam,

Mam taki kod:

  1. <?php
  2.  
  3. $url = 'kod';
  4.  
  5. if (!preg_match_all('/<link.*application\/(rss|atom)\+xml.*?\/>/', $url, $matches)) {
  6. echo 'Nieprawidłowa konstrukcja znacznika';
  7. } else {
  8. print_r($matches);
  9. }
  10.  
  11. ?>


Ten prosty skrypt szuka w kodzie znacznika <link> wewnątrz którego występuje application=rss lub atom. Jednak problem pojawia się, gdy w kodzie są dwa takie znaczniki. Jeżeli oddzielone są siebie znakiem nowej linii wszystko jest w porządku. Jednak gdy są one nieoddzielone od siebie to wtedy pojawia się problem, ponieważ wszystkie wyniki wyświetlają się tak

Cytat
[0] => <link rel="alternate" type="application/rss+xml" title="rss" href="rss.xml" /><link rel="alternate" type="application/rss+xml" title="rss" href="rss.xml" />


zamiast tak

Cytat
[0] => <link rel="alternate" type="application/rss+xml" title="rss" href="rss.xml" />
[1] => <link rel="alternate" type="application/rss+xml" title="rss" href="rss.xml" />


Jak pozbyć się tego problemu, aby w przypadku dwóch złączonych <link> wyświetlały się one jako osobne wyniki?
vermis
Spróbuj tak:
Kod
<link.*?application\/(rss|atom)\+xml.*?\/>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.