Eliminar los primeros 3 caracteres y los últimos 3 caracteres de la cadena PHP
Necesito eliminar las primeras 3 letras de una cadena y las últimas 3 letras de una cadena. Sé que puedo usar substr () para comenzar con un cierto carácter, pero si necesito eliminar el primer y el último carácter, no estoy seguro de si realmente puedo usar esto. Alguna sugerencia?
6 answers
Pase un valor negativo como el argumento length
(el tercer argumento), como:
$result = substr($string, 3, -3);
Así que esto:
<?
$string = "Sean Bright";
$string = substr($string, 3, -3);
echo $string;
?>
Salidas:
n Bri
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-12 19:57:31
Use
substr($var,1,-1)
Esto siempre será el primero y el último sin tener que usar strlen.
Ejemplo:
<?php
$input = ",a,b,d,e,f,";
$output = substr($input, 1, -1);
echo $output;
?>
Producto:
A,b,d,e, f
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-15 23:38:01
Como se indica en otras respuestas, puede usar una de las siguientes funciones para alcanzar su objetivo:
- substr (string string, 3, -3) elimina 3 caracteres de inicio y final
- trim (string string, ",") elimina todos los caracteres específicos de inicio y fin
- ltrim (string string, ".") elimina todos los caracteres específicos del inicio
- rtrim (string string, ";") elimina todos los caracteres específicos de end
Depende de la cantidad de caracteres que necesita para eliminar y si la eliminación debe ser específica. Pero finalmente substr()
responde a tu pregunta perfectamente.
Tal vez alguien piensa en eliminar el primer/último carácter a través de desreferenciación de cadenas. Olvida eso, no funcionará como null
es un char también:
<?php
$string = 'Stackoverflow';
var_dump($string);
$string[0] = null;
var_dump($string);
$string[0] = null;
var_dump($string);
echo ord($string[0]) . PHP_EOL;
$string[1] = '';
var_dump($string);
echo ord($string[1]) . PHP_EOL;
?>
Devuelve:
string(13) "Stackoverflow"
string(13) "tackoverflow"
string(13) "tackoverflow"
0
string(13) "ackoverflow"
0
Y no es posible usar unset($string[0])
para cadenas:
Error fatal : No se pueden desajustar los desplazamientos de cadena en /usr/www/***.php {[38] } en línea * *
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-02 11:10:38
substr($string, 3, strlen($string) - 6)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-02 08:33:44
No conozco php, pero ¿no puede tomar la longitud de la cadena, comenzar como posición 3 y tomar caracteres length-6 usando substr?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-12 19:57:15
$myString='123456789';
$newString=substr($myString,3,-3);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-12 19:57:54