Page 1 sur 1
suppression dans une chaîne
Posté : 13 sept. 2005, 21:57
par Task
Bonjour,
$chaine ='13,12,152,48,385';
$nombre = '152';
Mon problème est le suivant : je sais que ma variable $nombre est forcément dans $chaine, mais je ne peux pas savoir à quel endroit.
Or je dois supprimer '152' afin que $chaine soit égal à '13,12,'48'385'.
Avez-vous une idée svp ?
Merci à vous.
Task
Posté : 13 sept. 2005, 22:02
par Vaedan
$position = strpos( $chaine, $nombre );
if ( $position !== false )
echo '<b>', $nombre, '</b> commence au caractère <b>', $position, '</b>';
merci mais pour supprimer
Posté : 13 sept. 2005, 22:11
par Task
Merci bien,
Je sais maintenant ou commence mon nombre mais comment puis-je le supprimer ?
Merci
Posté : 13 sept. 2005, 22:31
par Vaedan
bah ...
$position = strpos( $chaine, $nombre );
if ( $position !== false )
{
if ( isset( $chaine{ $position + strlen( (string)$nombre ) + 1 } ) )
{
if ( $chaine{ $position + strlen( (string)$nombre ) + 1 } === ',' )
$replace = $nombre . ',';
}
elseif ( isset( $chaine{ $position - 1 } ) )
{
if ( $chaine{ $position - 1 } === ',' )
$replace = ',' . $nombre;
}
else
{
$replace = $nombre;
}
}
echo str_replace( $replace, '', $chaine );
curieux
Posté : 13 sept. 2005, 23:59
par Task
ça me donne toujours la même liste ?
merci
Posté : 14 sept. 2005, 00:54
par Task
j'ai finalement réussi en bidouillant ton code.
Merci pour les infos.
Task
Posté : 14 sept. 2005, 08:37
par Vaedan
un pti résolu ?

Posté : 14 sept. 2005, 11:29
par Tho
et comme ça :
<?php
$chaine ='13,12,152,48,385';
$nombre = '152';
echo substr_replace($chaine, '', strpos($chaine,$nombre), strlen($nombre));
?>