php - preg_replace - regex preg_match_all
PHP-¿Cómo eliminar todos los caracteres específicos al final de una cadena? (7)
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''
¿Cómo eliminar el último personaje solo si es un punto?
$string = "something here.";
$output = ''something here'';
Para eliminar el último carácter solo si es un punto y no recurrir a preg_replace
, podemos tratar la cadena como una matriz de caracteres y eliminar el carácter final si se trata de un punto.
if ($str[strlen($str)-1]===''.'')
$str=substr($str, 0, -1);
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, ''.'');
¡La forma más simple y rápida!
Sé que la pregunta es algo antiguo, pero puede ser que mi respuesta sea útil para alguien.
$string = "something here..........";
ltrim eliminaría los puntos principales. por ejemplo: - ltrim($string, ".")
rtrim rtrim($string, ".")
eliminaría los puntos finales.
trim trim($string, ".")
eliminaría los puntos iniciales y finales.
también puedes hacer esto por regex
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 sea útil para ti.
Utilice una combinación de strrpos y substr para obtener la posición del último carácter de punto y eliminarlo, dejando intactos todos los demás caracteres:
$string = "something here.";
$pos = strrpos($string,''.'');
if($pos !== false){
$output = substr($string,0,$pos);
} else {
$output = $string;
}
var_dump($output);
// $output = ''something here'';
usar rtrim reemplaza todo "." al final, no solo el último personaje
$string = "something here..";
echo preg_replace("//.$/","",$string);
$output = rtrim($string, ''.'');
(Referencia: rtrim en PHP.net )