J'ai une chaîne qui ressemble à ceci:
$str = "bla_string_bla_bla_bla";
Comment puis-je supprimer le premier bla_
; mais seulement s'il se trouve au début de la chaîne?
Avec str_replace()
, il supprime tous bla_
'.
J'ai une chaîne qui ressemble à ceci:
$str = "bla_string_bla_bla_bla";
Comment puis-je supprimer le premier bla_
; mais seulement s'il se trouve au début de la chaîne?
Avec str_replace()
, il supprime tous bla_
'.
Forme ordinaire, sans regex:
$prefix = 'bla_';
$str = 'bla_string_bla_bla_bla';
if (substr($str, 0, strlen($prefix)) == $prefix) {
$str = substr($str, strlen($prefix));
}
Prend: 0.0369 ms (0.000,036,954 secondes)
Et avec:
$prefix = 'bla_';
$str = 'bla_string_bla_bla_bla';
$str = preg_replace('/^' . preg_quote($prefix, '/') . '/', '', $str);
Prend: 0.1749 ms (0.000,174,999 secondes) la 1ère (la compilation), et 0.0510 ms (0.000,051,021 secondes) après.
Profilé sur mon serveur, évidemment.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.