Autor Zpráva
gardener
Profil
Chtěl bych se zeptat, zda by mi někdo mohl poradit ohledně jednoho regulárního dotazu..
Mám tento htmk kód:

<img src="imgcode.php?id=cebe85cd71c51a87e7d4c9b0c61be8de" alt="Číselný kód" />


A regulární dotaz jsem napsal takto:
"^<img src=\"imgcode.php?id=.*\" alt=\"Číselný kód\" //>$"


Bohužel, pokud použiji fci eregi nebo preg match vrátí mi fce. vždy false.

Tuší někdo, kde by mohla být chyba?

Díky za každou radu..
TomášK
Profil
Na konci jsou dvě lomítka, má tam být jedno:
"^<img src=\"imgcode.php?id=.*\" alt=\"Číselný kód\" />$"

Nevím, jestli se v php musí escapovat lomítko, pokud ano, tak ale určitě zpětným:
"^<img src=\"imgcode.php?id=.*\" alt=\"Číselný kód\" \/>$"

A ještě bys měl nahradit tu tečku, vyhneš se tím možným problémům - např. dva obrázky za sebou
<img src="imgcode.php?id=cebe85cd71c51a87e7d4c9b0c61be8de" alt="Číselný kód" /><img src="imgcode.php?id=cebe85cd71c51a87e7d4c9b0c61be8de" alt="Číselný kód" />
by na ten regexp namatchovaly, což asi nechceš.
Zkusil bych toto:
"^<img src=\"imgcode.php?id=[a-zA-Z0-9]*\" alt=\"Číselný kód\" \/>$"
gardener
Profil
Tak bohužel ani jeden..
Napadlo mě, jestli by nemohla hrát roli mezera za tím altem..ale pokud je zapsána jakou součást reguláru..tak by to vadit nemělo ne?
TomášK
Profil
Mezera je jako každý jiný znak - pokud je v reguláru i v testovaném řetězci, pak je to v pořádku. Zakopaného psa už jsem snad odhalil - jde o ten otazník, který je speciální znak a musí se escapovat. A lomítko být escapované nemá (zkoušel jsem to v nějaké webové utilitce):
"^<img src=\"imgcode.php\?id=[a-zA-Z0-9]*\" alt=\"Číselný kód\" />$"
gardener
Profil
Ještě jsem objevil, že je tam id generované i ve skritém prvku a na ten se psal regulár lehčeji:
preg_match("<input type=\"hidden\" name=\"imgid\" value=\".*\" />",$obsah,$nalezene)



Díky ještě jednou za radu..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0