Autor | Zpráva | ||
---|---|---|---|
xxxadam577 Profil |
#1 · Zasláno: 13. 4. 2016, 21:27:18
Ahoj,
potřebuji poradit. Trošku si hraju a nevím si rady. Rád bych z cizí stránky vypsal informaci. Třeba z [url=http://mshokej.xf.cz/Click me[/url] vypsat výsledek u dvojtečky. Vím, že stránku vložím pomocí file_get_contents a pak hledám s preg_replace, ale nějak se mi to nedaří :). Děkuju za pomoc |
||
Taps Profil |
#2 · Zasláno: 13. 4. 2016, 21:51:34
xxxadam577:
já používám file_get_contents + preg_match_all |
||
xxxadam577 Profil |
#3 · Zasláno: 13. 4. 2016, 21:53:38
Můžeš prosím uvést příklad pro pochopení? :)
|
||
Taps Profil |
#4 · Zasláno: 13. 4. 2016, 22:10:45
xxxadam577:
tady rjwebdesign.cz/blog/PHP/20080612-Ukazujeme-Fotbalove-Tabulky je uvedena spousta příkladů |
||
RastyAmateur Profil |
xxxadam577:
Já se tedy v regulárech také moc neorientuji, ale kdybys stále nevěděl, jak to sestavit, tady je vcelku fungující ukázka... Ovšem můj způsob výběru stránky není moc ideální. Asi by mi to spoustu programátorů totálně zkritizovalo, ale funguje to :) Použij to tedy v případě nouze! <meta charset="utf-8"> <?php $html = file_get_contents("http://mshokej.xf.cz/"); preg_match_all("/<div class=\'zapas\'>\s*<font class=\'dvojtecka\'>:<\/font>\s*<font class=\'vysledek1\'>([^<]*)<\/font>\s*<font class=\'vysledek2\'>([^<]*)<\/font>\s*<img src=\'([^\']*)\'class=\'vlajka1\'>\s*<img src=\'([^\']*)\' class=\'vlajka2\'>\s*<font class=\'stat1\'>([^<]*)<\/font>\s*<font class=\'stat2\'>([^<]*)<\/font>\s*/", $html, $matches); foreach($matches[3] as $key => $val){ echo "<img src=\"http://mshokej.xf.cz".$val."\" height=\"20px\">"; echo ' '.$matches[1][$key].':'.$matches[2][$key].' '; echo "<img src=\"http://mshokej.xf.cz".$matches[4][$key]."\" height=\"20px\">"; echo "<br>"; } ?> |
||
xxxadam577 Profil |
Ahoj, v tvém řešení mi to hlásí chybu v foreach :(
Rozhodl jsem se začít něčím jednodušším, tak jsem se rozhodl z webu (jiného) vytáhnout pouze malou část textu. <?php $f = file_get_contents("http://www.pizza-mex.cz/kontakty.php"); preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/', $f, $out); $my_table = $out[1]; echo $my_table; ?> ( ! ) Notice: Undefined offset: 1 in C:\wamp\www\vypis.php on line 4 |
||
Lonanek Profil |
#7 · Zasláno: 14. 4. 2016, 17:35:49
Neřekl bych, že je to foreach, ale v preg_match_all(). Chybí mi tam v čem nahradit (subject) a kam uložit (matches).
Tedy asi takto: preg_match_all("/<div class=\'zapas\'>\s*<font class=\'dvojtecka\'>:<\/font>\s*<font class=\'vysledek1\'>([^<]*)<\/font>\s*<font class=\'vysledek2\'>([^<]*)<\/font>\s*<img src=\'([^\']*)\'class=\'vlajka1\'>\s*<img src=\'([^\']*)\' class=\'vlajka2\'>\s*<font class=\'stat1\'>([^<]*)<\/font>\s*<font class=\'stat2\'>([^<]*)<\/font>\s*/", $html, $matches); |
||
xxxadam577 Profil |
#8 · Zasláno: 14. 4. 2016, 17:45:53
Lonanek,
zkusil jsem tvé řešení, nehází to chybu, ale ani text. Bílá stránka. |
||
RastyAmateur Profil |
#9 · Zasláno: 14. 4. 2016, 18:10:33
Lonanek:
Omlouvám se, špatně jsem to zkopíroval - odmazával jsem si komentáře... xxxadam577: Určitě to musí jít, testoval jsem to... |
||
Lonanek Profil |
#10 · Zasláno: 14. 4. 2016, 18:27:14
xxxadam577:
„ale ani text. Bílá stránka.“ Chyba v kódu. Co na to log chyb? Kde hostujete? |
||
xxxadam577 Profil |
#11 · Zasláno: 14. 4. 2016, 18:47:19
Lonanek, vše mám zpuštěné na localhostu momentálně. Už jsem v polovině, ale pro ulehčení práce jsem trochu upravil postup.
Všeobecné se mi vypisuje toto Array ( [0] => vysledek0 [1] => vysledek1 [2] => vysledek2 ) Co mám dělat, když chchi vypsat pouze vysledek 1? Omlouvám se, jsem dřevák, ale teprve se učím :) |
||
Lonanek Profil |
#12 · Zasláno: 14. 4. 2016, 18:56:47
echo $matches[1]; |
||
xxxadam577 Profil |
#13 · Zasláno: 14. 4. 2016, 19:04:42
Ono pod
$matches[0] se mi vypíše Array ( [0] => vysledek0 [1] => vysledek1 [2] => vysledek2 )
při $matches[1] se napíše chyba Undefined offset: 1
|
||
RastyAmateur Profil |
#14 · Zasláno: 14. 4. 2016, 19:13:21
xxxadam577:
Vyzkoušej $matches[0][1]
|
||
xxxadam577 Profil |
#15 · Zasláno: 14. 4. 2016, 19:13:26
Děkuju za pomoc, dal jsem to dohromady!! Díky moc !
|
||
Časová prodleva: 9 let
|
0