ultimo - ¿Cómo eliminar el primer carácter de cadena en PHP?
Actualizar
Después de otras pruebas, no recomiendo usar esto nunca más. Me causó un problema al usar la cadena actualizada en una consulta de MySQL, y al cambiar a substr
solucionó el problema. Pensé en eliminar esta respuesta, pero los comentarios sugieren que es más rápido de alguna manera, por lo que alguien podría tener un uso para ello. Puede encontrar que recortar la cadena actualizada resuelve los problemas de longitud de la cadena.
A veces no necesitas una función:
$str[0] = '''';
Por ejemplo:
$str = ''AHello'';
$str[0] = '''';
echo $str; // ''Hello''
Este método modifica la cadena existente en lugar de crear otra.
Aquí está el código
$str = substr($str, 1);
echo $str;
Salida:
this is a applepie :)
El código funciona bien para mí.
$str = substr($str ,-(strlen($str)-1));
Tal vez, contribuir con respuestas también.
La función substr()
probablemente te ayudará aquí:
$str = substr($str, 1);
Las cadenas se indexan a partir de 0, y este segundo parámetro de funciones toma el arranque rápido. Así que haz eso 1, y el primer personaje se ha ido.
La respuesta aceptada:
$str = ltrim($str, '':'');
Funciona pero eliminará múltiples :
cuando hay más de uno al inicio.
$str = substr($str, 1);
eliminará cualquier personaje desde el principio.
Sin embargo,
if ($str[0] === '':'')
$str = substr($str, 1);
funciona perfectamente.
Para eliminar cada :
desde el principio de una cadena, puede usar ltrim :
$str = ''::f:o:'';
$str = ltrim($str, '':'');
var_dump($str); //=> ''f:o:''
Recortes de repeticiones de cada palabra en una matriz desde el principio y el final de una cadena + espacios en blanco y, opcionalmente, caracteres extra sueltos según el recorte normal ()
<?php
function trim_words($what, $words, $char_list = '''') {
if(!is_array($words)) return false;
$char_list .= " /t/n/r/0/x0B"; // default trim chars
$pattern = "(".implode("|", array_map(''preg_quote'', $words)).")/b";
$str = trim(preg_replace(''~''.$pattern.''$~i'', '''', preg_replace(''~^''.$pattern.''~i'', '''', trim($what, $char_list))), $char_list);
return $str;
}
// for example:
$trim_list = array(''AND'', ''OR'');
$what = '' OR x = 1 AND b = 2 AND '';
print_r(trim_words($what, $trim_list)); // => "x = 1 AND b = 2"
$what = '' ORDER BY x DESC, b ASC, '';
print_r(trim_words($what, $trim_list, '','')); // => "ORDER BY x DESC, b ASC"
?>
Tiempo de ejecución para las 3 respuestas:
Retire la primera letra reemplazando la caja.
$str = "hello";
$str[0] = "";
// $str[0] = false;
// $str[0] = null;
// replaced by �, but ok for echo
0.39602184295654
para 1.000.000 pruebas: 0.39602184295654
seg.
Eliminar la primera letra con substr ()
$str = "hello";
$str = substr($str, 1);
5.153294801712
para 1.000.000 pruebas: 5.153294801712
seg.
Eliminar la primera letra con ltrim ()
$str = "hello";
$str= ltrim ($str,''h'');
5.2393000125885
para 1.000.000 pruebas: 5.2393000125885
seg.
Eliminar la primera letra con preg_replace ()
$str = "hello";
$str = preg_replace(''/^./'', '''', $str);
6.8543920516968
para 1.000.000 pruebas: 6.8543920516968
seg.
Utilice substr :
$str = substr($str, 1); // this is a applepie :)
puedes usar la función sbstr ()
$amount = 1; //where $amount the the amount of string you want to delete starting from index 0
$str = substr($str, $amount);
$str = substr($str, 1);
echo substr(''abcdef'', 1); // bcdef
Nota:
unset($str[0])
no funcionará ya que no puedes desarmar parte de una cadena:
Fatal error: Cannot unset string offsets