| 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: 17 let
|
|||
0
).