Autor Zpráva
Fisir
Profil
Ahoj,
přeinstaloval jsem server z Debianu na Ubuntu, a chtěl jsem tam nahrát svůj web. Jenže, serverová část, která vrací titulky JavaScriptu nehlásí žádnou chybu, ale nic nevrátí. Na Debianu to fungovalo. Podle phpinfo(); je direktiva allow_url_fopen zapnutá.
<?php
function getTitle($Url){
    if(!preg_match("/http(s)?:\/\//",$Url)){
        $Url = "http://www.j-jaburek.tk/".$Url;
    };
    $str = file_get_contents($Url);
    if(strlen($str)>0){
        preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
        $string = $title[1];
        $patterns = array();
        $patterns[0] = '/ \| Jakub Jabůrek/';
        $replacements = array();;
        $replacements[0] = '';
        $title[1] = preg_replace($patterns, $replacements, $string);
        
        // Přidání kotvy
        if(preg_match("/#(.*)/",$Url)){
            preg_match("/#(.*)/",$Url,$kotva);
            preg_match("/<(.*)(id|name)=(\"|')".$kotva[1]."(\"|')(.*)?>(.*)<\/(.*)>/",$str,$kotv);
            $title[1] .= " » ".$kotv[6];
        };
        
        return $title[1];
    };
};

if(!preg_match("/http(s)?:\/\/(.*)j-jaburek.tk/",$_GET["url"]) and preg_match("/http(s)?:\/\//",$_GET["url"])){
    die("Externí weby nejsou podporovány!");
};

$titulek = getTitle($_GET["url"]);

if(!$_GET["url"] or $titulek == ""){
    die("Chyba při extrahování titulku!");
};

echo $titulek;
?>
DJ Miky
Profil
A máš na serveru zapnuté vypisování chyb (display_errors)? Standardně to bývá vypnuté, místo toho se chyby zapisují do error_logu.
Oison
Profil
Zkus použít místo toho file_get_contents cURL. Taky jsem s tím měl problémy. Do dnes vlastně ani nevím proč -> použímám cURL a je to paráda :)))
Tady je jednoduchá funkce na získání obsahu po GET requestu:
function getData($url, $timeout = 5)
  {
      $ch = curl_init();
      curl_setopt($ch,CURLOPT_URL,$url);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
      curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
  }

Zkus a uvidíš ;)
Fisir
Profil
Reaguji na Oisona [#3]:
Díky, zatím to funguje. Zkusím se ještě pohrabat v nastavení, aby fungovalo i file_get_contents.
Oison
Profil
No mně třeba na localhostu na xubuntu funguje file_get_contents bez chyby. Ale po serveru je to jak kdy... Zaleží hodně na hostingu! Vážně! Přejdi taky na cURL a už tě to nikdy nebude trápit! :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: