fread kullanarak hatayı bastırmak ()

1 Cevap

Ben arayan için bir dizin listesi bulur ama bazen onlar olsun "giriş akışı okuyamıyorum" ve senaryonun kalanı çıkar bizim yumuşak telefonu ekran Baban için bir senaryo yazdı.

Herkes hatası hata iletisi bastırmak ve script kalanı çalışmasına izin konusunda herhangi bir öneriniz var mı? Teşekkürler!

$i=0;

    $open = fopen("http://www.411.ca/whitepages/?n=".$_GET['phone'], "r"); 
    $read = fread($open, 9024); 
    fclose($open); 
    eregi("'/(.*)';",$read,$got);
    $tv = ereg_replace('[[:blank:]]',' ',$got[1]);
    $url = "http://www.411.ca/".$tv;
    while ($name=="unknown" && $i < 15) { ## try 15 times before giving up
    $file = @ fopen($fn=$url,"r") or die ("Can't read input stream");
    $text = fread($file,16384);
    if (preg_match('/"name">(.*?)<\/div>/is',$text,$found)) {
            $name = $found[1];
    } 
    if (preg_match('/"phone">(.*?)<\/div>/is',$text,$found)) {
            $phone = $found[1];
    } 
    if (preg_match('/"address">(.*?)<\/div>/is',$text,$found)) {
            $address = $found[1];
    } 
    fclose($file);
    $i++;
    }

1 Cevap

Bu özellikle fopen için, dönüş değerlerini kontrol etmeniz gerekir.

Böyle bir şey:

$file = fopen($fn=$url,"r");
if ($file === false) {
    // Unable to open stream, handle error
}

Sonra fopen bunu veriyoruz URL'den okuyamıyor oluşur hatayı işlemek için nasıl karar vermeniz gerekir. Ben aslında sadece hatayı bastırmak ve komut anlamlı bir şeyler yapmak gerekiyor veriler olmadan devam etmek için izin istiyorum şüpheliyim. Sen kısaca duraklatmak ve dosyayı yeniden açmaya veya yerine bir çıplak "dosya açılamıyor" mesajı ile ölmekten daha kolay hata sayfasına kullanıcıyı doğrudan olabilir.