Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Ořezání textu - preg_match

Zdravím,
lámu si hlavou nad funkcí preg_match(). Potřeboval bych poradit...

$text ='<site name="RS" onpage="543" ingame="514"/><site name="CZ" onpage="544" ingame="375"/><site name="SI" onpage="250" ingame="84"/>';

preg_match("~CZ\" .*?\" ~",$text,$nalez_cz);
echo $nalez_cz[0];   

Vypíše mi to CZ" onpage="544"... Já bych potřeboval, aby to vypsalo jen to číslo 544.

Děkuji moc za příklady
Hezký večer, Marek

Předmět Autor Datum
Pokud je dotaz ještě aktivní tak bych si dovolil odpovědět. Pokud víte že CZ bude vždy 2. v pořadí… poslední
martin.developer 01.03.2011 21:48
martin.developer

Pokud je dotaz ještě aktivní tak bych si dovolil odpovědět.

Pokud víte že CZ bude vždy 2. v pořadí v tom stringu tak to můžete udělat univerzálně přes :

<?php
$text ='<site name="RS" onpage="543" ingame="514"/><site name="CZ" onpage="544" ingame="375"/><site name="SI" onpage="250" ingame="84"/>';

preg_match_all("/onpage=\"(.*?)\"/ui", $text, $res);

Kde v $res bude vícerozměrné pole a v prvním indexu bude pole s onpage="XXX" a v druhém indexu bude pole pouze s XXX.
Takže pokud víte že CZ je vždy 2 v pořadí tak stačí jen :

<?php
$text ='<site name="RS" onpage="543" ingame="514"/><site name="CZ" onpage="544" ingame="375"/><site name="SI" onpage="250" ingame="84"/>';

preg_match_all("/onpage=\"(.*?)\"/ui", $text, $res);

echo "CZ - " . $res[1][1];

Ale pokud nevíte pořadí, můžete použít tento regulár, který vytáhne jen to kde je CZ :

<?php
$text ='<site name="RS" onpage="543" ingame="514"/><site name="CZ" onpage="544" ingame="375"/><site name="SI" onpage="250" ingame="84"/>';

preg_match_all("/CZ\".*?onpage=\"(.*?)\"/ui", $text, $res);

echo "CZ - " . $res[1][0];

Zpět do poradny Odpovědět na původní otázku Nahoru