Si j'ai une ficelle
00020300504
00000234892839
000239074
comment puis-je me débarrasser des zéros de tête pour que je ne dispose que de cette
20300504
234892839
239074
notez que le nombre ci-dessus a été généré aléatoirement.
ltrim
:
$str = ltrim($str, '0');
Je ne sais pas pourquoi les gens utilisent des méthodes si complexes pour réaliser une chose aussi simple! Et regex? Hou la la!
Voilà, le moyen le plus simple et le plus simple (comme expliqué ici: https://nabtron.com/kiss-code/ ):
$a = '000000000000001';
$a += 0;
echo $a; // will output 1
(string)((int)"00000234892839")
Semblable à une autre suggestion, mais n'effacera pas le zéro réel:
if (ltrim($str, '0') != '') {
$str = ltrim($str, '0');
} else {
$str = '0';
}
vous pouvez ajouter "+" dans votre variable,
exemple :
$numString = "0000001123000";
echo +$numString;
Regex a déjà été proposé, mais pas correctement:
<?php
$number = '00000004523423400023402340240';
$withoutLeadingZeroes = preg_replace('/^0+/', $number)
echo $withoutLeadingZeroes;
?>
la sortie est alors:
4523423400023402340240
Arrière-plan sur Regex: Le ^
indique le début de la chaîne et le signe +
signale plus ou aucun des signes précédents Par conséquent, l'expression régulière ^0+
correspond à tous les zéros au début d'une chaîne.
Je ne pense pas que preg_replace soit la solution .. Vieux fil, mais il se trouve que vous cherchez ceci aujourd'hui ltrim et (int) casting sont les gagnants.
<?php
$numString = "0000001123000";
$actualInt = "1123000";
$fixed_str1 = preg_replace('/000+/','',$numString);
$fixed_str2 = ltrim($numString, '0');
$fixed_str3 = (int)$numString;
echo $numString . " Original";
echo "<br>";
echo $fixed_str1 . " Fix1";
echo "<br>";
echo $fixed_str2 . " Fix2";
echo "<br>";
echo $fixed_str3 . " Fix3";
echo "<br>";
echo $actualInt . " Actual integer in string";
//output
0000001123000 Origina
1123 Fix1
1123000 Fix2
1123000 Fix3
1123000 Actual integer in tring
Im fixe avec cette façon.
c'est très simple. ne passe qu'une chaîne à son zéro nul début de chaîne.
function removeZeroString($str='')
{
while(trim(substr($str,0,1)) === '0')
{
$str = ltrim($str,'0');
}
return $str;
}