Autor | Zpráva | ||
---|---|---|---|
josh Profil * |
#1 · Zasláno: 4. 2. 2010, 00:14:43
Zdravim,
poradil by niekto ako sa da pomocu php zisit existencia danej webstranky, pripadne existecia konkretneho suboru na danej webstranke. Najlepsie bez pouzitia fsockopen (nepodporuju ho niektore freehostingy) Dakujem |
||
josh Profil * |
Pravidlo, ze ked nieco nenajdem 2 hodiny predtym ako to sem napisem, najdem to 5 minut po tom. Ale hadam to niekomu pomoze, lenze tento skript trochu 'zial' funguje na freehostingu ale za to nie na mojom platenom, inak je celkom jednoduchy:
$url = 'http://www.example.com'; $handle = @fopen($url,'r'); if($handle !== false){ echo 'Exists'; } else{ echo "Doesn't"; } uvitam dalsie napady Moderátor Joker: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
breeta Profil * |
#3 · Zasláno: 4. 2. 2010, 10:19:24
pro získání html z www stránky bych použil funkci file_get_contents ...
|
||
Joker Profil |
#4 · Zasláno: 4. 2. 2010, 10:55:51 · Upravil/a: Joker
breeta:
„pro získání html z www stránky bych použil funkci file_get_contents“ Což neřeší joshův problém, jak zjistit existenci stránky. edit: resp. když nefunguje fopen (ačkoliv, co znamená "nefunguje"?), nejspíš nebude ani file_get_contents. josh: Možná by šlo použít get_headers |
||
DoubleThink Profil * |
#5 · Zasláno: 4. 2. 2010, 11:11:14
breeta:
„pro získání html z www stránky bych použil funkci file_get_contents ...“ Budeš načítat celou stránku, jen abys zjistil, jestli existuje? josh: „$handle = @fopen($url,'r');“ fopen ověří jen existenci serveru, ne stránky. Existence stránky se ověřuje kontrolou návratového stavového kódu, například funkcí get_headers. Pokud není povoleno allow_url_fopen, používá se ručně sestavený HEAD požadavek pomocí fsockopen. Pokud ani tuto funkci nejde použít, je poslední možnost většinou cURL opět s volbou CURLOPT_NOBODY pro vyslání HEAD požadavku. Pokud ani to nejde, je třeba poslat webhostéra do prdele, protože neprodává hosting, ale čínskou polívku s nudlema. |
||
josh Profil * |
#6 · Zasláno: 4. 2. 2010, 12:26:35
Nasiel som odvtedy este zopár skriptov samozrejme ani jeden 100%,
tiež som skúšal odčítať meta tagy a title - všetko sa javí byť pomerne v pohode, pokial ale stránka existuje, žial ani to nieje vždy pravidlo, pokial zadam adresu nejakeho freehostingu napr nieconieco.over.cz - vylsledok je ze stránka neexistuje a neodčita descrpition ani nič iné. Tiež som to spozoroval napr. na stránke pink.sk (nejaky obchod alebo niečo) ale skripta ukazujú že stranka nexistuje, nema title ani description (niečo som čítal o nejakom protokole alebo o niečom podobnom - som tomu velmi nerozumel pravdupovediac) ...failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in get_meta_tags... inak matenejaky napad ako dostat odčitanú description do čitatelného tvaru (nejaké prekódovanie znakovň) napr. zoznam.sk sa zobrazi: Preh�adn� Zoznam odkazov slovensk�ho internetu - skr�tka v�etko �o potrebujete n�js�. pomocou encode utf8 sa mi to podarí dostať do tvaru: Preh¾adný Zoznam odkazov slovenského internetu - skrátka vetko èo potrebujete nájs. ciže o niečo lepšie, ale stále nie výhra : |
||
Joker Profil |
#7 · Zasláno: 4. 2. 2010, 12:33:48
josh:
Ta vrácená chyba: „403 Forbidden“ znamená, že webový server odepřel přístup ke stránce. Neboli se snažíte dostat ke stránce, kterou Vám server odmítá poskytnout. |
||
josh Profil * |
function url_exists($url) { // Version 4.x supported $handle = curl_init($url); if (false === $handle) { return false; } curl_setopt($handle, CURLOPT_HEADER, false); curl_setopt($handle, CURLOPT_FAILONERROR, true); // this works curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") ); // request as if Firefox curl_setopt($handle, CURLOPT_NOBODY, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, false); $connectable = curl_exec($handle); curl_close($handle); return $connectable; } zatial široko-daleko najefektivnejši skript, rozoznáva aj nieconieco.over.cz domeny sice pink.sk nie, ale vyčital som niečo ze funkčnosť tomuto skriptu pridáva array('User Agent... cize nieco co Vas indentifikuje ako Firefox v tomto pripade ak som tomu dobre pochopil, je to potrebne pri domenach (hostingoch) s nejakými obmedzeniami, resp zabezpečením... ale aké zabezpečenie ma pink.sk ? dufam že nieje veľa takých domén Moderátor DoubleThink: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ). Myslíme to vážně. |
||
Časová prodleva: 14 let
|
0