Autor Zpráva
kurnick
Profil *
Dobrý den,

bojuji už pěkně dlouho s nalezením výrazu, který by mi zajistil nalezení tohoto řetězce a zjistil mi hodnotu pro alt:

<img src="RŮZNÉ HODNOTY" border="0" alt="HOTNOTA CO MĚ ZAJÍMÁ" title="gallery_nahled" />


Snažím se poskládat nějaký rozumný regulární výraz, ale vždy mi to buď nenajde nic, nebo skoro všechno.

Skončil jsem u něčeho takovéhoto a né a né se posunout.

preg_match_all("|<img[^>]+alt=\"(.*)\" title=\"gallery_nahled\" />|U", $vyraz, $matches, PREG_PATTERN_ORDER)


Pročítal jsem si informace o regulárních výrazech na tomto webu http://zvon.org/other/PerlTutorial/Output_cze/contents.html#9, ale zatím mě to nikam moc nepostrčilo.

Budu upřímný, trochu mě tlačí čas na to, abych se dal do hlubšího studia regulárních výrazů, ale jiné elegantní řešení mě nenapadá.
Předem díky za každou radu.
kurnick
Profil *
Tak jsem postoupil o kosek vpřed, už najdu jen tagy obrázků a to pomocí tohoto:

preg_match_all("|<img[^>]+>(.*)[^>]+>|U", $vyraz, $matches, PREG_PATTERN_ORDER)


Ale stejně za nimi zůstane ještě nějaký tag navíc, co nechci :(
nightfish
Profil
třeba takhle...
$vstup = '<img src="RŮZNÉ HODNOTY" border="0" alt="HOTNOTA CO MĚ ZAJÍMÁ" title="gallery_nahled" />';
if (preg_match("/<img.*alt=\"(.*)\".*title=\"(.*)\"/U", $vstup, $matches)) {
  // $matches[1] = alt
  // $matches[2] = title
} else if ((preg_match("/<img.*title=\"(.*)\".*alt=\"(.*)\"/U", $vstup, $matches)) {
  // $matches[1] = title
  // $matches[2] = alt
}
nightfish
Profil
a pokud těch obrázků může být obecně víc, tak
preg_match_all("/<img.*alt=\"(.*)\".*title=\"(.*)\".*>/U", $vstup, $matches)
kurnick
Profil *
Díky moc.
Budu si muset najít čas a pořádně si pravidla regulárních výrazů nastudovat, abych se nezasekával na takovýchto "banalitách" :)

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