Autor | Zpráva | ||
---|---|---|---|
check Profil |
#1 · Zasláno: 24. 1. 2015, 17:26:17
Ahoj,
zkoušel jsem nastudovat regulární výrazy, ale nejde mi to, tak se obracím s prosbou na profíky. Potřeboval bych napsat regulární výraz, který po projetí stažené stránky vypíše v $matches aktuální devizový kurz EUR nákup. Děkuji <?php $url = "http://www.fio.cz"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) "); $data = curl_exec($ch); curl_close($ch); $tagRegExp = 'regulární výraz, který mi zjistí kurz EUR nákup'; preg_match($tagRegExp, $data, $matches); $nadpis = $matches[3]; echo ($nadpis); ?> |
||
Keeehi Profil |
Těch regulárů může být spousta. Čím je konkrétněší, tím je více náchylný na změny v html kódu v tom místě stránky, čím více je obecný, tím je větší riziko, že začne nacházet něco jiného, když se stránka změní jinde.
Celkem primitivní a dost konkrétní by mohl vypadat takto: <td class="tleft"><strong>EUR</strong></td><td class="tright">([^<]*)</td> |
||
check Profil |
Keeehi: Když to vložím do apostrofů za proměnnou $tagRegExp, tak to nefunguje. Stejně tak to nefunguje, když to opásám %.
|
||
Dan Charousek Profil |
#4 · Zasláno: 24. 1. 2015, 20:57:30
Co místo reguláru použít DOMElement?
|
||
check Profil |
#5 · Zasláno: 24. 1. 2015, 21:41:48
Prosím předložte mi nějaké řešení, které mi vyhodí hodnotu kurzu Eura, jestli to bude s DOM parserem nebo regulárním výrazem je jedno. Hlavně aby to celé fungovalo - pošlete mi prosím kompletní php script. Já už na to nemám se v tom hrabat kvůli jedný kravině - zešedivím z toho.
|
||
check Profil |
#6 · Zasláno: 25. 1. 2015, 02:33:11
Kolegové na webtrhu mi pomohli s regulárním výrazem, tak sem dávám pro úplnost výsledek, děkuji všem.
<?php $url = "http://www.fio.cz"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) "); $data = curl_exec($ch); curl_close($ch); preg_match('~<strong>EUR</strong></td><td class="tright">(\d+,\d+)</td>~s', $data, $match); echo $match[1]; ?> |
||
Časová prodleva: 9 let
|
0