Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]preg_match białe znaki
Forum PHP.pl > Forum > Przedszkole
knypraca
Witam!
Zaciągam pytania z systemu i natknąłem się na problem.
  1. preg_match('|<tr>
  2. <td style="text-align:left;"><p><input name="formqst" value="true" type="radio"/> c) Odpowiedz</p></td>
  3. </tr>
  4.  
  5. <tr>
  6. <td style="text-align:left;"><p><input name="formqst" value="false" type="radio"/> d) Odpowiedz
  7. </p></td>
  8. </tr>|Ui',$info,$mysl);

Wiem, białe znaki usuwam w sposób \s+. Natomiast jak mogę zautomatyzować wstawianie tego znaku.
Problem tkwi w powyższym kodzie - raz znaczniki
  1. </p></td>
są w jednej linii z odpowiedzią, a raz w następnej. I psuje mi to cały skrypt...
Da radę jakoś nakazać preg_matchowi wykrywać samemu nową linię?
Proszę o pomoc.
itype88
http://php.net/manual/en/reference.pcre.pa...n.modifiers.php
modyfikator m? strzelam :E
knypraca
  1. $info = file_get_contents("$firsturl");
  2. preg_match('|<form method="post" action="(.*)" onsubmit="(.*)">\s+<table style="width: 940px;">\s+<tr><td style="vertical-align:top;text-align:left;font-weight:bold;">\s+<p>(.*)</p></td></tr>\s+<tr><td style="vertical-align:top;text-align:left;font-weight:bold;"><p><span style="(.*)">(.*)</span>(.*)</td></tr>\s+<tr>\s+<td style="text-align:left;"><p><input name="formqst" value="(.*);(.*);(.*)" type="radio"/>(.*)</p></td> \s+</tr>\s+<tr>\s+<td style="text-align:left;"><p><input name="formqst" value="(.*);(.*);(.*)" type="radio"/>(.*)</p></td> \s+</tr>\s+<tr>\s+<td style="text-align:left;"><p><input name="formqst" value="(.*);(.*);(.*)" type="radio"/>(.*)</p></td> \s+</tr>\s+<tr>\s+<td style="text-align:left;"><p><input name="formqst" value="(.*);(.*);(.*)" type="radio"/>(.*)</p></td> \s+</tr>|Ui',$info,$mysl);

Mam coś takiego. Jak powstawiać ^ or $ ? GDzie i jak to dokadniej ma wyglądać? Można prosić o przykład?
Tak to ma wyglądać?
  1. ^<input name="formqst" value="(.*);(.*);(.*)" type="radio"/>(.*)</p></td>$ czy może
  2. <input name="formqst" value="(.*);(.*);(.*)" type="radio"/>(.*)^</p></td>$
  3.  
Arcioch
Pokaż dokładnie co chcesz wyciągnąć z jakiego kawałka strony smile.gif
Wyrażenia regularne do html to nie zbyt dobry pomysł.
Nie lepiej użyć dom parsera i bez trudu wyciągnąć co potrzebujesz smile.gif
knypraca
Potrzeba mi wyciągnąć wszystko co jest zaznaczone powyżej jako (.*)
Dokładniej pytanie, 4 odpowiedzi => plus zaznaczenie, która dokładnie jest poprawna (w źródle true false) i zapis do bazy.
Dodatkowo mam to zrobione w pętli - 100 pytań więc z form action wyciągam link do kolejnego pliku.
Działa to ogólnie ładnie do max 30-40 pytań - potem zacznają się jakieś obrazki albo tak jak pisałem <td> nie jest na końcu odpowiedzi tylko w innej linijce.
I skrypt zostaje przerwany bo preg match nie wyciąga mi linku do kolejnego pytania. :/
Arcioch
Jak możesz to podaj adres strony, z której chcesz to wyciągnąć albo html to podepnę dom parsera i zobaczymy jak to wyjdzie smile.gif
LowiczakPL
to jest Twoje zapytanie regex

#value="(.*)" |\/>(.*)<\/p#
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.