Autor Zpráva
slovakCZ
Profil
Zdravim,
mam takovy mensi problem :) ziskavam obsah divu z nejake url:
$ziskej   = file_get_contents("http://web.cz");

na dane strance je v html toto:
<div class="block" style=""><div class="title"><a href="url1" target="_blank"  class="txtRed"><b>Ziskany text 1</b></a></div></div><br>
<div class="block" style=""><div class="title"><a href="url2" target="_blank"  class="txtRed"><b>Ziskany text 2</b></a></div></div><br>

Kdyz pote ziskavam obsah tohoto divu:
$uprav_link    = preg_replace(array('/^.+<div class="title">/s', '/<\/div>.+$/s', '/<br\/>/'), '', $ziskej);
echo $uprav_link;


Tak mi to na stranku vypise: Ziskany text 2
Tedy kdyz je tech divu na strance 100 tak mi vzdy vypise obsah toho posledniho.
Je nejaka moznost, jak vybrat pouze obsah 1. divu? zkousel jsem:
$isFirst = true;
if ($isFirst) {
$uprav_link    = preg_replace(array('/^.+<div class="title">/s', '/<\/div>.+$/s', '/<br\/>/'), '', $ziskej);
echo $uprav_link;
$isFirst = false;
}

bohuzel nic..

zkousel jsem i:
$isFirst = true;
while ($isFirst) {
$uprav_link    = preg_replace(array('/^.+<div class="title">/s', '/<\/div>.+$/s', '/<br\/>/'), '', $ziskej);
echo $uprav_link;
$isFirst = false;
}

a take nic.. asi spravne nechapu jak na to :)

Dekuji za rady ;)



ps.
udajne by to melo byt takto:
http://newsourcemedia.com/blog/php-replace-only-first-occurrence-of-a-string-match/

upravil jsme tedy radek:
$uprav_link    = preg_replace(array('/^.+<div class="title">/s', '/<\/div>.+$/s', '/<br\/>/'), '', $ziskej);

na
$uprav_link    = preg_replace(array('/^.+<div class="title">/s', '/<\/div>.+$/s', '/<br\/>/'), '', $ziskej, 1);

ale stale mi to nevypise 1., nybrz posledni obsah divu.. =o/
fajzen
Profil
slovakCZ:
načo tak komplikovano?
preg_match('/<div class="title">(.*)<\/div>/', $ziskej, $matches);
echo $matches[1];
slovakCZ
Profil
fajzen:
jati ani nevim :o) jednoduse to je nuda :o)...

diky moc, funguje to ;)

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