PHP fonksiyonları alışkanlık String nesnesi ile çalışmak, fakat elle yazdığınız ile çalışır

2 Cevap php

Bir cisimden gelen bir metin çıkışından etiketleri şerit çalışıyorum. Sorun şu ki, ben yapamam, olduğunu. I "<p>http://www.mylink.com</p>" gibi elle yazarsanız, iyi çalışıyor! Yaparken echo $item->text; bana aynı dizeyi "<p>http://www.mylink.com</p>"; Yapma verir var_dump ya da gettype, bana bir string() verir . Yani, ben bir dize onun eminim, ama ben çeşitli işlevleri preg_replace, preg_match, strip_Tags, hiçbiri çalıştı çalıştı, öyle davranmıyor. Nasıl bu durumu çözebilir, nasıl hata ayıklama?


 $search = array("<p>", "</p>");
 $switch = array("foo", "baa");

 //works just fine, when used
 $text = "<p>http://www.mylink.com</p>"; 

 //it's a string for sure!
 var_dump($item->introtext);

 $text = $item->introtext;

 //doesn't work
 $text = str_replace($search, $switch, $text);

 $text = strip_tags($text, "<p>");

 //doesn't work either.
 $matches = array();
 $pattern = '/<p>(.*)<\/p>/';

 preg_match($pattern, $text, $matches);

 //gives me the following output: <p>http://www.omeulink.com</p>
 echo $text;

2 Cevap

Aşağıdaki deneyin

$text = $item->introtext;
$newText = strip_tags($text);

Eğer fonksiyon içine yem önce bir dizeye nesneyi typecasting.

$ Text = (string) $ item-> introtext;