SORU
2 EYLÜL 2009, ÇARŞAMBA


Eğer bir dize seri hale olup olmadığını görmek için kontrol edin?

Ya da bir dize getirilmeye çıktı / sonuç olup olmadığını belirlemek için en iyi yolu nedir() fonksiyonu?

CEVAP
2 EYLÜL 2009, ÇARŞAMBA


Derdim, 14* *deneyin ;-)

Manuel alıntı :

Durumda geçirilen dize değil unserializeable, YANLIŞ ve döndürülür OLUŞACAKTIR verilir.

Bu yüzden, eğer dönüş değeri false olup olmadığını kontrol etmelisiniz(=== veya emin olmak için !==).

Sadece dikkat dikkat : @ operator kullanmak için isteyebilirsiniz.

Örneğin :

$str = 'hjkl';
$data = @unserialize($str);
if ($data !== false) {
    echo "ok";
} else {
    echo "not ok";
}

Al sen

not ok


EDİT : Oh, ve gibi @Peter dedi (sağolsun!), eğer bir boolean false temsili unserialize için çalışıyorsanız sorun olabilir :-(

Yani, tefrika dize "b:0;" yararlı da olabilir ; bir şey bu hile yapmak gerekir gibi, sanırım : . için eşit olmadığını kontrol

$data = @unserialize($str);
if ($str === 'b:0;' || $data !== false) {
    echo "ok";
} else {
    echo "not ok";
}

unserialize denemeden önce bu özel durumda test genellikle yanlış sıralanmış bir değeri yok. eğer bir iyileştirme olabilir ama bu muhtemelen yararlı olacaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dan Gately

    Dan Gately

    13 AĞUSTOS 2006
  • DanceOn

    DanceOn

    6 Mayıs 2006
  • JTechTalk

    JTechTalk

    11 Temmuz 2010