¿Cómo eliminar el carácter principal de una cadena?

Resuelto yuli chika asked hace 54 años • 10 respuestas

Tengo una cadena de entrada como:

$str = ':this is a applepie :) ';

¿ Cómo puedo eliminar el primero que ocurre :con PHP?

Salida deseada:this is a applepie :)

yuli chika avatar Jan 01 '70 08:01 yuli chika
Aceptado

La substr()función probablemente te ayudará aquí:

 $str = substr($str, 1);

Las cadenas se indexan a partir de 0, y el segundo parámetro de esta función toma el inicio de corte. Así que hazlo 1 y el primer carácter desaparecerá.

mario avatar Jan 09 '2011 09:01 mario

Para eliminar cada :desde el principio de una cadena, puedes usar ltrim :

$str = '::f:o:';
$str = ltrim($str, ':');
var_dump($str); //=> 'f:o:'
Haim Evgi avatar Jan 09 '2011 09:01 Haim Evgi

Utilice substr :

$str = substr($str, 1); // this is a applepie :)
alexn avatar Jan 09 '2011 09:01 alexn

Tiempo de ejecución para las 3 respuestas:

Retire la primera letra reemplazando el caso.

$str = "hello";
$str[0] = "";
// $str[0] = false;
// $str[0] = null;
// replaced by �, but ok for echo

Tiempo de ejecución para 1.000.000 de pruebas: 0.39602184295654segundos


Eliminar la primera letra con substr()

$str = "hello";
$str = substr($str, 1);

Tiempo de ejecución para 1.000.000 de pruebas: 5.153294801712segundos


Elimina la primera letra con ltrim()

$str = "hello";
$str= ltrim ($str,'h');

Tiempo de ejecución para 1.000.000 de pruebas: 5.2393000125885segundos


Elimina la primera letra con preg_replace()

$str = "hello";
$str = preg_replace('/^./', '', $str);

Tiempo de ejecución para 1.000.000 de pruebas: 6.8543920516968segundos

Hayenn avatar Mar 07 '2014 11:03 Hayenn

La respuesta aceptada:

$str = ltrim($str, ':');

funciona pero eliminará varios :cuando haya más de uno al principio.

$str = substr($str, 1);

eliminará cualquier carácter desde el principio.

Sin embargo,

if ($str[0] === ':')
    $str = substr($str, 1);

funciona perfectamente.

Dan Bray avatar Feb 05 '2018 01:02 Dan Bray