Autor | Zpráva | ||
---|---|---|---|
cheli Profil |
#1 · Zasláno: 9. 10. 2009, 22:02:58
Ahoj, potřeboval bych vědět jak docílim toho, abych získal třeba z textu nebo z celé stránky jen určitou část. Vim jak ověřit výraz, jestli projde vzorkem reg. výrazu, ale u toho taky končim.
Jak tedy získam z otevřené stránky jen určitou část. Třeba nadpisy H1 file_get_contents("www.stranka.cz"); |
||
cheli Profil |
#2 · Zasláno: 10. 10. 2009, 11:36:16
nikdo neví? :/
|
||
Alphard Profil |
#3 · Zasláno: 10. 10. 2009, 12:22:40
preg_match_all("~<h1>(.+)</h1>~imU", $text, $h1); |
||
cheli Profil |
#4 · Zasláno: 10. 10. 2009, 14:01:09
díky moc, s tim už si snad nějak poradim ;)
|
||
Časová prodleva: 3 dny
|
|||
cheli Profil |
#5 · Zasláno: 13. 10. 2009, 13:09:01
ještě sem narazil na jednu nelogickou (pro mě) věc:
- při zadání tohohle kódu s textem v proměnné se výsledek vypíše $text = "<td class='title' colspan='4' height='18'>...</td>"; preg_match_all("~<td class='title' (.*)>(.*)</td>~", $text, $td); echo $td[0][0]; - ale pokud použiju tenhle s načtením textu z ext. stránky, tak je výsledek false. Přitom zdrojový kód obsahuje stejný kód jako je v $textu nahoře. $text = file_get_contents ("http://www.stranka.cz"); preg_match_all("~<td class='title' (.*)>(.*)</td>~", $text, $td); echo $td[0][0]; Pokud použiju jen <td></td> na jinou buňku nebo jiný tag bez stanovení třídy, tak se to také vypíše. |
||
Majkl578 Profil |
#6 · Zasláno: 13. 10. 2009, 13:24:54 · Upravil/a: Majkl578
cheli
hraji roli i veskere mezery, napr. mezera v "class='title' (.*)>" by mohla byt problem, kdyby tag byl uzavren hned za class atributem ten regular bych napsal takto: preg_match_all("~<td class='title'[^>]*>(.*?)</td>~i", $text, $matches); jinak over, zda ti file_get_contents opravdu ziska pozadovana data |
||
cheli Profil |
#7 · Zasláno: 13. 10. 2009, 13:48:36 · Upravil/a: cheli
Majkl578
jinak over, zda ti file_get_contents opravdu ziska pozadovana data To nevim, ještě s tim nemam dostatek zkušeností. Jen nevím, jak by to šlo udělat líp. Právě že ten výraz nekončí hned za class='title'. Celý vypadá asi takto: $text = file_get_contents ("http://www.livescore.com"); <b>World Cup 2009 (Under 20)</b> - Play-Off</td> To je ten výraz, který bych chtěl z toho vytáhnout. Jsou to zatím pokusy a trénink, tak bych chtěl najít vhodný způsob. |
||
Majkl578 Profil |
#8 · Zasláno: 13. 10. 2009, 14:55:31
cheli
fakt tam nevidis rozdil? napriklad uvozovky misto apostrofu u atributu title? |
||
cheli Profil |
#9 · Zasláno: 13. 10. 2009, 16:54:28
už je mi to jasný, ale nevěděl sem, že uvozovky musí bejt taky v souladu se vzorem.
|
||
Majkl578 Profil |
#10 · Zasláno: 13. 10. 2009, 17:20:46
cheli
vzdyt testujes presnou shodu taky v obchode kdyz budes chtit jablko, nedostanes hrusku, protoze je to ovoce... :) |
||
Časová prodleva: 15 let
|
0