@ fopen kullanarak hata

6 Cevap php

Ben "rb" modunda bir dosyayı açmak için @ fopen kullanıyorum. Burada açılış im dosya hatasız çalışıyor ama fopen @ kullanarak bu dosyayı açarsanız o hatayı veriyor.

code --- böyle bir şeydir

$file = @fopen("xyz.com","rb") or $flag=1;

if($flag==1)
{
    mail($to, $subject, $message, $from);
    die();
}

bazen herhangi bir hata mail göndererek olmadan açılıyor ama bazen o kadar çok hata postalarını vererek başlar.

herhangi bir hata mail kalmadan bu url açmak için çözüm nedir? plz yardım!

6 Cevap

Eğer ('xyz.com' sen dahil itibaren varsayılarak) bir URL açmak için çalışıyorsanız, o zaman önce şema beyanı dahil etmek gerekir. Örneğin http://xyz.com, aksi halde PHP yerel bir dosyayı açmayı dener. Eğer yerel bir dosyaya atıfta ediyorsanız, Windows üzerinde iseniz herhangi bir geri bölü kaçmak için emin olun.

Ancak, sorun neden etmelisiniz kod örneği kalanı ile doğal olarak yanlış başka bir şey yok. @ Sadece hata çıkışlarını bastırır, böylece kendi içinde ve herhangi tek bir davranışa neden olmayacaktır.

Rağmen, dedi, bunu işlemek için daha iyi bir yolu bunu yapmak olabilir:

$file = @fopen("xyz.com","rb");

if(!$file)
{
    mail($to, $subject, $message, $from);
    die();
}

Kullanmayı deneyin

file_get_contents();

fonksiyonu yerine fopen ().

Bir hata olduğunda arada, $ bayrağı = 1 ayarı vardır. Bir hata son kez ve bu sefer oldu ama eğer hiçbir hata ne var? (Daha sonra $ bayrak önceki zaman hala 1).

i ya bir tahmin tehlike olur - fopen yöntemin baştan '@' charactor kaldırmak, bu size php bu dosyayı açmak olamaz düşünüyor neden açıklama verecek (@ sembolünün orada varlığı herhangi bir php tahrik hata mesajı bastırış) dosyanın yolu veya dosya izinleri geçersiz.

Hata mesajı nedir? Biz sadece o olmadan sorun hakkında tahmin edebilirsiniz.

Url her zaman ini izin fopen mı? Belki bu değer ini_set ile bir yere geçersiz kılar (?)

Emin misiniz, bu url doğru olduğunu ve ev sahibi hayatta?

Son olarak, ben yerine fsockopen kullanmanızı öneririz. Bu hata onları ve bağlantı zaman aşımı ayarlamak için olasılığı için işleme, daha esnek uzaktan bağlantı sağlar.

@ Sembolleri hataları böylece $ bayrak set asla bastırır