Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenie regularne
Forum PHP.pl > Forum > Przedszkole
ciniutek
Witam . Mam pewien problem z wyrażeniem regularnym . Dokładnie to z wyciągnięciem pewnej treści .. Mam do wyciągnięcia dwie linijki kodu :

  1. <div style="cursor: pointer;" id="menuc286">tytuł</div>
  2. <div style='display: none;' class='hideit menuh286'>


Próbowałem stosować już \n ale nic nie daje ..
A oto kawałek mojego skryptu :

  1. $regexp = "<div style=\"cursor: pointer;\" id=\"(.*)\">(.*)<\/div>";
  2. if(preg_match_all("/$regexp/", $nowe, $matches, PREG_SET_ORDER)) {
  3. foreach($matches as $match)
tolomei
To co podałeś działa dla mnie bez zarzutu.
Może z pętlą foreach coś nie tak było?
Odpal sobie to:

  1. $text = '<div style="cursor: pointer;" id="menuc286">tytuł</div>
  2. <div style=\'display: none;\' class=\'hideit menuh286\'>
  3. <div style="cursor: pointer;" id="abcd">12345</div>
  4. <div style=\'display: none;\' class=\'hideit menuh286\'>';
  5.  
  6. $regexp = "<div style=\"cursor: pointer;\" id=\"(.*)\">(.*)<\/div>";
  7. if(preg_match_all("/$regexp/", $text, $matches, PREG_SET_ORDER)) {
  8. var_dump($matches);
  9. }


A co takiego chciałeś z drugiej linijki wyciągnąć ?
Czy chciałeś ją po prostu odnaleźć ?
ciniutek
Chodzi o to , że chce wyciągnąć większy kawałek kodu ze źródła pewnej strony smile.gif
  1. <div style="cursor: pointer;" id="menuc286">Tytuł</div> //TUTAJ JEST "ENTER"
  2.  
  3. <div style='display: none;' class='hideit menuh286'><tr><td><table cellpadding='0' cellspacing='0' border='0' width=0%' align='center'><tr><td><a href='Link' target='_blank'>


Ten pierwszy kawałek z tytułem bez problemowo mi wyciąga , ale jak już dodaje drugą linijkę , to już nic się nie wyświetla w tablicy ..

W manualu widziałem takie zastosowanie :

  1. $regexp = ("<div style=\"cursor: pointer;\" id=\"(.*)\">(.*)<\/div>", "<div style='display: none;' class='hideit menuh286'><tr><td><table cellpadding='0' cellspacing='0' border='0' width=0%' align='center'><tr><td><a href='Link' target='_blank'>");


Ale wyskakuje błąd "," ..
sada
Skoro między linijkami jest enter musisz dodać między wzorcami tych linijek biały znak np: \n
ciniutek
Dodawałem , ale nic nie daje .. chyba , że źle jakoś dodaje ..

  1. $regexp = ("<div style=\"cursor: pointer;\" id=\"(.*)\">(.*)<\/div>\n<div style='display: none;' class='(.*)'><tr><td><table cellpadding='0' cellspacing='0' border='0' width=0%' align='center'><tr><td><a href='(.*)' target='_blank'>");
  2. if(preg_match_all("/$regexp/", $nowe, $matches, PREG_SET_ORDER)) {
  3. foreach($matches as $match)
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.