remove - substr php
php substr() funciona con utf-8 deja marcas al final (6)
Aquí está el código simple
<?php
$var = "Бензин Офиси А.С. также производит все типы жира и смазок и их побочных продуктов в его смесительных установках нефти машинного масла в Деринце, Измите, Алиага и Измире. У Компании есть 3 885 станций технического обслуживания, включая сжиженный газ (ЛПГ) станции под фирменным знаком Петрогаз, приблизительно 5 000 дилеров, двух смазочных смесительных установок, 12 терминалов, и 26 единиц поставки аэропорта.";
$foo = substr($var,0,142);
echo $foo;
?>
y produce algo como esto:
Бензин Офиси А.С. также производит все типы жира и смазок и их побочных продук ...
Probé mb_substr () sin suerte. ¿Cómo hacer esto de la manera correcta?
Espero que esta solución te ayude ya que me ha ayudado mucho.
<?php
if(mb_strlen($post->post_content,''UTF-8'')>200){
$content= str_replace(''/n'', '''', mb_substr(strip_tags($post-> post_content),
0, 200,''UTF-8''));
echo $content.''…'';
}else{
echo str_replace(''/n'', '''', strip_tags($post->post_content));
}
?>
Los comentarios anteriores son correctos siempre que tenga habilitado mbstring en su servidor.
$var = "Бензин Офиси А.С. также производит все типы жира и смазок и их побочных продуктов в его смесительных установках нефти машинного масла в Деринце, Измите, Алиага и Измире. У Компании есть 3 885 станций технического обслуживания, включая сжиженный газ (ЛПГ) станции под фирменным знаком Петрогаз, приблизительно 5 000 дилеров, двух смазочных смесительных установок, 12 терминалов, и 26 единиц поставки аэропорта.";
$foo = mb_substr($var,0,142, "utf-8");
Aquí está la documentación php:
Nunca use la función constante en substr para la cadena UTF-8: $ st = substr ($ text, $ beg, 100); 50% de probabilidad de que obtengas la mitad de un personaje al final de la cadena)
Hazlo así:
$postion_degin = strpos($text, $first_symbol);
$postion_end = strpos($text, $last_symbol);
$len = $postion_end - $postion_degin +1;
$st = substr($text, $postion_degin, $len);
Resultado 100%
No mb_substr
PHP5 no entiende UTF-8 de forma nativa. Se propone para PHP6, si alguna vez sale.
Utilice las funciones de cadena multibyte para manipular cadenas UTF-8 de forma segura.
Por ejemplo, mb_substr()
en su caso.
Si sus cadenas pueden contener caracteres Unicode (de varios bytes) y no desea romperlos, reemplace substr
con uno de los dos siguientes, según lo que desee:
Limitar a 142 caracteres :
mb_substr($var, 0, 142);
Límite a 142 bytes :
mb_strcut($var, 0, 142);
Una alternativa adecuada (lógica) para cadenas de Unicode;
<?php
function substr_unicode($str, $s, $l = null) {
return join("", array_slice(
preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $s, $l));
}
$str = "Büyük";
$s = 0; // start from "0" (nth) char
$l = 3; // get "3" chars
echo substr($str, $s, $l) ."/n"; // Bü
echo mb_substr($str, $s, $l) ."/n"; // Bü
echo substr_unicode($str, $s, $l); // Büy
?>
Utilice el PHP: mb_substr - Manual