Autor | Zpráva | ||
---|---|---|---|
gardener Profil |
#1 · Zasláno: 27. 4. 2009, 12:47:52
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 |
#2 · Zasláno: 27. 4. 2009, 13:04:03 · Upravil/a: TomášK
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" /> Zkusil bych toto: "^<img src=\"imgcode.php?id=[a-zA-Z0-9]*\" alt=\"Číselný kód\" \/>$" |
||
gardener Profil |
#3 · Zasláno: 27. 4. 2009, 13:20:18
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 |
#4 · Zasláno: 27. 4. 2009, 14:00:12
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 |
#5 · Zasláno: 27. 4. 2009, 15:01:23
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.. |
||
Časová prodleva: 15 let
|
0