Html varlıkları düzgün substr nasıl?

3 Cevap php

Bu gibi var:

$mytext="that's really "confusing" and <absolutly> silly";
echo substr($mytext,0,6);

Bu durumda çıkış olacaktır: that&# yerine that's

Ne ben istiyorum ben her zaman metnin sonunda breaked html veya bazı karanlık karakterleri ile sona çünkü, 1 karakteri sonra substr olarak html varlıkları saymak etmektir.

Ben temiz bir yöntem istiyorsanız, bana o zaman kodlamak sonra substr decode html tavsiye etmeyin :)

Teşekkürler

3 Cevap


function encoded_substr($string, $param, $param2){
  $s = html_entity_decode($string);
  $sub = substr($s, $param, $param2);
  return htmlentities($sub);
}

Orada, ben sizin için bir fonksiyon içine Cletus'un 'kod copypasted. Şimdi kod 1 hattı ile çok basit 3 satır işlevini çağırabilirsiniz. Bu "temiz" değilse o zaman ben demektir "temizlemek" ne kafam karıştı.

Kodlama Fonksiyonları Aşağıdaki ile deneyin.

<?php

$mytext="that&#039;s really &quot;confusing&quot; and &lt;absolutly&gt; silly";

echo limit_text($tamil_var,6);

function limit_text($text,$limit){
   preg_match_all("/&(.*)\;/U", $text, $pat_array);
   $additional=0;

   foreach ($pat_array[0] as $key => $value) {
     if($key <$limit){$additional += (strlen($value)-1);}
   }
   $limit+=$additional;

   if(strlen($text)>$limit){
     $text = substr( $text,0,$limit );
     $text = substr( $text,0,-(strlen(strrchr($text,' '))) );
   }
   return $text;

}

?>