IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Remplacer seulement un caractère, string, substr, str_replace


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de zool.bzh
    Homme Profil pro
    peintre industriel
    Inscrit en
    Octobre 2023
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : peintre industriel
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2023
    Messages : 148
    Par défaut Remplacer seulement un caractère, string, substr, str_replace
    Bonjour
    Je voudrais supprimer les zéros en trop en début de chaime pour mes photos.
    Avec ma manip ça supprime tous les zéros voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $string="image_0404.jpg";
    $t = 8;
    $str_tof = substr($string, - $t, 4);
    $replace = str_replace(".jpg", "", $str_tof);
    echo $replace;         // me donne 0404
    $compt = substr($replace, - 4, 1);
    if ($compt == 0){
    	$str_pos = str_replace(0, "", $replace);
            echo $str_pos;  //me donne 44
    	                   // je voudrais 404
    }
    Voyez vous comment faire ??

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 258
    Par défaut
    Tu devrais pouvoir le faire avec trim.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Récupère la série de chiffres suivants les zéros initiaux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $file = 'image_0404.jpg';
    preg_match('/^image_0*(\\d+)/', $file, $match);
    print_r($match[1]); // "404"

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 258
    Par défaut
    et pourquoi pas utiliser trim avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $trimmed = trim($text, "0");
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Il y a aussi sscanf() :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $file = 'image_0404.jpg';
    [$n] = sscanf($file, 'image_%d.jpg');
    echo $n; // 404

    trim(), pourquoi pas.

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2025
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2025
    Messages : 4
    Par défaut
    Salut,

    Le sujet date un peu, mais comme j'avais envie...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    	function removeLeadingZeros($filename) {
    		$finalFilename = '';
    		$filenameLen = strlen($filename);
    		$hasNum = false;
    		for($i = 0; $i < $filenameLen; $i++) {
    			if('0' == $filename[$i]) {
    				if($hasNum) {
    					$finalFilename .= $filename[$i];
    				}
    			} else {
    				if(!$hasNum && is_numeric($filename[$i])) {
    					$hasNum = true;
    				}
    				$finalFilename .= $filename[$i];
    			}
    		}
    		return $finalFilename;
    	}
     
    	echo removeLeadingZeros('image_0404.jpg');
    ?>
    Ou comme ça avec un niveau d'imbrication en mois...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?php
    	function removeLeadingZeros($filename) {
    		$finalFilename = '';
    		$filenameLen = strlen($filename);
    		$hasNum = false;
    		for($i = 0; $i < $filenameLen; $i++) {
    			if($hasNum) {
    				$finalFilename .= $filename[$i];
    			} else if('0' == $filename[$i]) {
    			} else if(is_numeric($filename[$i])) {
    				$finalFilename .= $filename[$i];
    				$hasNum = true;
    			} else {
    				$finalFilename .= $filename[$i];
    			}
    		}
    		return $finalFilename;
    	}
     
    	echo removeLeadingZeros('image_0404.jpg');
    ?>
    Les 2 exemples reçoivent 'image_0404.jpg' et renvoient 'image_404.jpg'.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/12/2008, 16h22
  2. Comment remplacer les "\" dans un "string"
    Par leduc26 dans le forum C++
    Réponses: 11
    Dernier message: 15/04/2008, 10h38
  3. Remplacer \ par \\ dans une string?
    Par g0ldenrno dans le forum Langage
    Réponses: 9
    Dernier message: 05/06/2006, 19h22
  4. [string] substr
    Par GLDavid dans le forum C++
    Réponses: 3
    Dernier message: 18/04/2006, 14h14
  5. string.substr() & string.split() ???
    Par BnA dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/03/2006, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo