¿Cómo elimino el último carácter solo si es un punto?
$string = "something here.";
$output = 'something here';
Respuestas:
$output = rtrim($string, '.');
(Referencia: rtrim en PHP.net )
…
para eso. Si quita el último punto y el resto sigue siendo un punto, el título de la pregunta no tendría mucho sentido, ¿verdad?
el uso de rtrim reemplaza todo "." al final, no solo el último personaje
$string = "something here..";
echo preg_replace("/\.$/","",$string);
character_mask
en trim
básicamente elimina cualquier instancia del carácter en la cadena completa
Para eliminar el último carácter solo si es un punto y sin recurrir a él preg_replace
, podemos tratar la cadena como una matriz de caracteres y eliminar el carácter final si es un punto.
if ($str[strlen($str)-1]==='.')
$str=substr($str, 0, -1);
===
lugar de ==
para verificar también la igualdad de tipos
Sé que la pregunta está resuelta. Pero tal vez esta respuesta sea útil para alguien.
rtrim()
- Quite los espacios en blanco (u otros caracteres) del final de una cadena
ltrim()
- Quite los espacios en blanco (u otros caracteres) del principio de una cadena
trim()
- Quite los espacios en blanco (u otros caracteres) del principio y el final de una cadena
Para eliminar caracteres especiales del final de la cadena o si la cadena contiene caracteres especiales dinámicos al final, podemos hacerlo mediante expresiones regulares.
preg_replace
- Realizar una búsqueda y reemplazo de expresiones regulares
$regex = "/\.$/"; //to replace the single dot at the end
$regex = "/\.+$/"; //to replace multiple dots at the end
$regex = "/[.*?!@#$&-_ ]+$/"; //to replace all special characters (.*?!@#$&-_) from the end
$result = preg_replace($regex, "", $string);
Aquí hay un ejemplo para entender cuándo $regex = "/[.*?!@#$&-_ ]+$/";
se aplica a una cadena.
$string = "Some text........"; // $resul -> "Some text";
$string = "Some text.????"; // $resul -> "Some text";
$string = "Some text!!!"; // $resul -> "Some text";
$string = "Some text..!???"; // $resul -> "Some text";
Espero que te sea de ayuda.
Gracias :-)
Sé que la pregunta es algo antigua, pero puede que mi respuesta sea útil para alguien.
$string = "something here..........";
ltrim eliminaría los puntos iniciales . por ejemplo:-ltrim($string, ".")
rtrim rtrim($string, ".")
eliminaría los puntos finales.
podar trim($string, ".")
eliminaría los puntos iniciales y finales.
también puedes hacer esto por expresiones regulares
preg_replace would remove se puede usar para eliminar puntos / puntos al final
$regex = "/\.$/"; //to replace single dot at the end
$regex = "/\.+$/"; //to replace multiple dots at the end
preg_replace($regex, "", $string);
Espero que te sea de ayuda.
El último carácter se puede eliminar de diferentes formas, aquí hay algunas
rtrim()
$output = rtrim($string, '.');
Regular Expression
preg_replace("/\.$/", "", $string);
substr()
/ mb_substr()
echo mb_substr($string, 0, -1);
echo substr(trim($string), 0, -1);
substr()
con trim()
echo substr(trim($string), 0, -1);
Use una combinación de strrpos y substr para obtener la posición del último carácter de punto y elimínelo dejando todos los demás caracteres intactos:
$string = "something here.";
$pos = strrpos($string,'.');
if($pos !== false){
$output = substr($string,0,$pos);
} else {
$output = $string;
}
var_dump($output);
// $output = 'something here';
Puede usar la función rtrim de php que le permite recortar los datos que existen en la última posición.
Por ejemplo :
$trim_variable= rtrim($any_string, '.');
Manera más sencilla y en ayunas !!
Ejemplo:
$columns = array('col1'=> 'value1', 'col2' => '2', 'col3' => '3', 'col4' => 'value4');
echo "Total no of elements: ".count($columns);
echo "<br>";
echo "----------------------------------------------<br />";
$keys = "";
$values = "";
foreach($columns as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
$keys = $keys."'".$x."',";
$values = $values."'".$x_value."',";
echo "<br>";
}
echo "----------------------Before------------------------<br />";
echo $keys;
echo "<br />";
echo $values;
echo "<br />";
$keys = rtrim($keys, ",");
$values = rtrim($values, ",");
echo "<br />";
echo "-----------------------After-----------------------<br />";
echo $keys;
echo "<br />";
echo $values;
?>
Salida:
Total no of elements: 4
----------------------------------------------
Key=col1, Value=value1
Key=col2, Value=2
Key=col3, Value=3
Key=col4, Value=value4
----------------------Before------------------------
'col1','col2','col3','col4',
'value1','2','3','value4',
-----------------------After-----------------------
'col1','col2','col3','col4'
'value1','2','3','value4'
rtrim
mucho más fácil ...!