konto usunięte

Temat: Niedowidzę, ale to nie wina denaturatu?

mam taki kod html:


pozycje (<b>1 - 10</b>) z <b>918</b> znalezionych.


i taki preg:


preg_match("/z \<b\>([0-9]+)\<\/b\> znalezionych\./", $cat_page, $matches);
$subpages_num = $matches[1];


subpages_num, nie zawiera nic.

patrzę na ten kawałek 30 minut, spaliłem 5 fajek, zmieniałem ten kod z lewo i prawo 40 razy i nie wiem, co nie gra.

co nie gra?
Michał Ławicki

Michał Ławicki dostawca zadowolenia

Temat: Niedowidzę, ale to nie wina denaturatu?

Regexp wygląda ok, trochę niepotrzebnego escapowania jest, ale mimo to gra. Napisz czy testujesz go na podstawie zwykłego, zdefiniowanego stringa czy na bazie pobranego kodu HTML - jeśli to drugie to upewnij się, że nie ma w z nim dodatkowych znaczników

konto usunięte

Temat: Niedowidzę, ale to nie wina denaturatu?

hexio@hexio-eee:~$ cat ./x.php
<?php
$cat_page = 'pozycje (<b>1 - 10</b>) z <b>918</b> znalezionych.';
preg_match("/z \<b\>([0-9]+)\<\/b\> znalezionych\./", $cat_page, $matches);
var_dump($matches[1]);
hexio@hexio-eee:~$ php ./x.php
string(3) "918"

Pokaż nam jak dokładnie to robisz, bo u mnie jest ok...

konto usunięte

Temat: Niedowidzę, ale to nie wina denaturatu?

ano kod wyglada tak: (oryginalny paste z src strony)


<DIV align=left><font face=verdana,arial,helvetica color=#000000 size=-1>
 Wyświetlone pozycje (<b>1 - 10</b>) z <b>7798</b> znalezionych.<br>
<br> Sortuj wg:


tyle, ze ja wczesniej usuwam nowe linie \n zastepujac je spacją.
zawsze ten sposob zdawal egzamin, czy mozliwe jest, ze string jest za dlugi? jaki jest w ogole limit dlugosci stringa?

strona ma 40kb, a ta metoda wyciagalem juz dane z dluzszych stringow, wiec to nie jest raczej problemem... z tego samego src ladnie wyciagam inne rzeczy, a z tym jest problem..

konto usunięte

Temat: Niedowidzę, ale to nie wina denaturatu?

Probowales sparsowac strone jako XML?

konto usunięte

Temat: Niedowidzę, ale to nie wina denaturatu?

nie probowalem, no ale nie widze sensu, skoro 50 innych rzeczy z tej strony wyciagam prawidlowo, a takiej pierdolki malej nie moge ogarnac.
Michał Ławicki

Michał Ławicki dostawca zadowolenia

Temat: Niedowidzę, ale to nie wina denaturatu?

dodaj do preg_match modyfikator ms i zobacz czy będą jakieś zmianyMichał Ławicki edytował(a) ten post dnia 21.05.10 o godzinie 14:04
Marcin Witek

Marcin Witek isido.pl ułatwia
pracę - polski sytem
zarządzania
projekt...

Temat: Niedowidzę, ale to nie wina denaturatu?

a może spróbuj dodać PCRE_UNGREEDY - modyfikator /U ?

konto usunięte

Temat: Niedowidzę, ale to nie wina denaturatu?

dobra, sprawa rozwiązana. serwer dostał bana za zbyt dużą ilość requestów, i co rusz inne śmieci w html'u dostawał.

dzieki za pomoc i czas. mozna zamknac.

konto usunięte

Temat: Niedowidzę, ale to nie wina denaturatu?

Mimo, że już rozwiązane, na przyszłość polecam skorzystanie z jakiegoś testera wyrażeń regularnych, pierwszy znaleziony:

http://www.spaweditor.com/scripts/regex/

Prawdziwy kombajn w tym temacie:
http://www.regexbuddy.com/test.html

Temat: Niedowidzę, ale to nie wina denaturatu?

A ja polecam przy parsowaniu htmla/xmla używac np. '#' zamiast '/' jako delimetery, nie będzie trzeba tyle escape'ować.Marcin Puchalski edytował(a) ten post dnia 22.05.10 o godzinie 12:23

Następna dyskusja:

WaveMaker to nie PHP ale...




Wyślij zaproszenie do