Autor Zpráva
Pašák
Profil *
Dobrý den,

chtěl bych poprosit o radu. Mám nějaký dost dlouhý text a v něm chci najít: <variable name="Right">0</variable>
a z tohoto řetězce vypsat jen nula, takže vlastně vypast jen text mezu udanými hodnotami. Mohl by mi prosím někdo poradit jak tohoto docílit? Děkuji!
Str4wberry
Profil
Můžeš použít regulární výraz (viz funkci preg_match) nebo využít DOMu.
Pašák
Profil *
Děkuji, ale nějak to nemohu dát dohromady, můj výsledek je tento:
A to jsem navíc vynechal podmínky že by měl řetězec začínat: <variable name=eee> a končit </variable>



$subject="<variable name=eee>1258127433</variable>";
$pattern = '*1258127433*';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
echo $matches;
breeta
Profil *
co takhle?

$text =  'chtěl bych poprosit o radu. Mám nějaký dost dlouhý text a v něm chci najít: <variable name="Right">0</variable> 
a z tohoto řetězce vypsat jen nula, takže vlastně vypast jen text mezu udanými hodnotami. Mohl by mi prosím někdo poradit jak tohoto docílit? Děkuji!';

$text = str_replace("<variable name=\"Right\">",'',$text);
$text = str_replace("</variable>",'',$text);

echo $text;
Pašák
Profil *
breeta:
Děkuji, dělá to už téměř to co chci, ale ještě to není přesně ono, teď NECHÁPU PROČ to odebírá všechny variable name=cokoliv, takže mi to hází výpis úplně všech položek jdoucích po sobě bez variable. :) Mě jdejen o to aby to vypsalo variable name=neco_konkretniho a toho nemohu docílit ani úpravou Vašeho kódu.
Joker
Profil
breeta:
To není moc dobrý nápad, viz Pašák - odstraní to <variable name="right"> ...a k tomu všechny </variable>

Lepší by byl asi regulární výraz, nějak takhle (nástřel):
preg_replace("#<variable name=\"Right\">(.*?)</variable>#", "$1", $text);
Pašák
Profil *
Moc děkuji, pokusím se to dopilovat. :)
Pašák
Profil *
Ještě prosím jednu radu, proč když mám následující kód v $text a dám vypsat text, objeví se to rovnou bez variable?? Tzn. rovnou mi to z celého vyřeže všechny elementy.

$text =  "<variable name=prdka>a</variable>";
echo $text;
breeta
Profil *
co takhle2 :-)


$text = 'chtěl bych poprosit o radu. Mám nějaký dost dlouhý text a v něm chci najít: <variable name="Right">0</variable> 
a z tohoto řetězce <variable name="Right">152hhhh</variable> vypsat jen nula, takže vlastně vypast jen text mezu udanými hodnotami. Mohl by mi prosím někdo poradit jak tohoto docílit? Děkuji!';
  
if (preg_match_all ( "/(<variable name=\"Right\">)(.*?)(<\/variable>)/", $text, $vysledeky )) 
foreach ($vysledeky[0] as &$vysledek ) echo substr($vysledek, 23, -11)."</br>";
Kajman_
Profil *
Zkuste si zobrazit zdrojový kód nebo nastavit content-type na text/plain.
Pašák
Profil *
Moc díky, je to naprosto perfektní až na uřezání všech prvních písmen. :)

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: