Извличане на бнб валута

Pussycat

Registered
Здравейте !

@emagi ми написа едно кодче, което аз в последствие доредактирах малко, но концепцията се запази същата.

Трябва ми да извлека бнб валутата от бтв-то.

Ето го и кода:

Код:
function currency($currency){ 
preg_match("/".$currency."(.*?)(([0-9]+)\.([0-9]+))/", file_get_contents('http://btv.bg/weather'), $matches); 
return isset( $matches[2] )?(float)$matches[2]:0; 
} 

for($i = 0; $i <= 3; $i++) { 
   echo currency("<td><strong>")."<br>"; 
}

По тоя начин обаче 3 пъти се повтаря стойността на първата валута в сайта, а целта ми е всички.

Направо може от тази страничка: http://www.btv.bg/news/currency.pcgi

Благодаря на всички отзовали се ! :wink:
 
я виж това няма ли да ти свърши работа, но изчакай да зареди за да се опреснят данните цък
 
Значи така работи , стига да не те бърка, че фукнцията ще ти работи с два параметъра (фактически от къде - до-къде)
function currency($currency,$currency2) {
preg_match_all("/".$currency."(.*?)(([0-9]+)\.([0-9]+))".$currency2."/",file_get_contents('http://btv.bg/weather'), $matches);
if (isset($matches[0])) return $matches[0];
}
$bnb = currency("<td><strong>","<\/strong>");
foreach ($bnb AS $temp) echo $temp."<br />";
 
Replace каза:
Значи така работи , стига да не те бърка, че фукнцията ще ти работи с два параметъра (фактически от къде - до-къде)
function currency($currency,$currency2) {
preg_match_all("/".$currency."(.*?)(([0-9]+)\.([0-9]+))".$currency2."/",file_get_contents('http://btv.bg/weather'), $matches);
if (isset($matches[0])) return $matches[0];
}
$bnb = currency("<td><strong>","<\/strong>");
foreach ($bnb AS $temp) echo $temp."<br />";

Екстра е !

Благодаря ти много !!

Можеш ли да ми кажеш и ако имам код в страница от сорта на:

<tr><td>123 test</td></tr>
<tr><td>456 test</td></tr>
<tr><td>789 test</td></tr>

.. как да взема информацията преди "test" която е ? (Тя е цифри)

Благодаря още веднъж ;)
 
$match = currency("<tr><td>","test </td></tr>");
foreach ($match AS $temp) echo $temp."<br />";
би трябвало да работи , ако е с цифри отново.
 
Replace каза:
$match = currency("<tr><td>","test </td></tr>");
foreach ($match AS $temp) echo $temp."<br />";
би трябвало да работи , ако е с цифри отново.

излиза ми:

Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 't' in xxxxx on line 4
Warning: Invalid argument supplied for foreach() in xxxx on line 9

Не трябва ли да се промени и (.*?)(([0-9]+)\.([0-9]+))
Защото числото не е плаващо ?

Благодаря
 
Не , другаде е грешката (според мене) , пробвай така
$match = currency("<tr><td>","test <\/td><\/tr>");
foreach ($match AS $temp) echo $temp."<br />";
 
Replace каза:
Не , другаде е грешката (според мене) , пробвай така
$match = currency("<tr><td>","test <\/td><\/tr>");
foreach ($match AS $temp) echo $temp."<br />";

и аз така пробвах в началото, но не излиза нищо.
За целта си създадох такава страничка и съдържанието й е както писах по-горе:
Код:
<tr><td>123 test</td></tr> 
<tr><td>456 test</td></tr> 
<tr><td>789 test</td></tr>

Но уви, не излиза нищо.. бял екран :roll:
 
Все повече (за мене си) се обеждавам ,че такъв код не върви във фукнкция , най-добре си е за времето и мястото , където ще ти трябва да си до напишеш , но пробвай това ако искаш
$match = currency("<tr>","<\/td>");
foreach ($match AS $temp) echo str_replace("test","",$temp)."<br />";
 
За жалост отново нищо не излиза :(

Няма значение как е кода.. дали било то с функция или не, и дали тя има някакви параметри.

Просто искам да parse-на даденото съдържание между таговете.
 

Горе