Incrématation d'une chaine de caractère en php

mb42 Messages postés 553 Statut Membre -  
Azraka Messages postés 265 Statut Membre -
Bonjour,

j'ai une variable qui a la valeur suivante Z000010

$i="Z000010";

je veux savoir comment incrémenter en php cette valeur par 1

c'est à dire la deuxième valeur sera Z000011 la troisième sera Z000012 et et ainsi de suite

car je veux utiliser ces valeurs dans un script

en fait je veux l'utiliser dans ce script

<?php
session_start();
 
/** Error reporting */
ini_set('display_errors',1);
 error_reporting(E_ALL);
 
/** LIBS * */
require_once("./lib/fpdf.php");
require_once("./lib/fpdi.php");
require_once ("./lib/class.phpmailer.php");
include "./lib/PDFMerger.php";
 
//Fichier CSV à parser
//$fichier = '/var/lib/mysql/test/Liste des SMS2.csv';
$fichier = '/home/test/Desktop/testt.csv';
//On vérifie que le fichier existe bien :)
 
 
$idtype='CIN';
$email='';
$genre='';
$ip_access='127.0.0.1';
$alias='';
 
 
 
 
 
if (file_exists($fichier))
{
//On l'ouvre en mode "read only"
$fp = fopen($fichier, 'r');
//Tant que l'on n'a pas finit de lire le fichier
 
 
//ici la première valeur 
$i="Z000010";
 
 
 
 
while (!feof($fp)){
//On lit les 4096 caractères de la ligne
$ligne = fgets($fp,4096);
//echo $ligne;
/* On met dans un tableau toutes les données, séparées par des points virgules */
$liste = explode(';',$ligne);
/* On crée une colonne contenant les données pour chacune d'entre elles en parsant le tableau */
 
 
    if($liste[0] != "" && $liste[1] != "" && $liste[2] != "" && $liste[3] != "" && $liste[4] != "" && $liste[5] != "" && $liste[6] != "" && $liste[7] != "" && $liste[8] != "")
    {
 
 
   $today=date("d/m/Y", strtotime($liste[4]));
$date_explosee = explode("/", $today);
 
$jour = $date_explosee[0];
$mois = $date_explosee[1];
$annee = $date_explosee[2];
 
 
$mobile=urlencode(str_replace("\r\n", "", trim($liste[0])));
$firstname=urlencode(str_replace("\r\n", "", trim($liste[1])));
$lastname=urlencode(str_replace("\r\n", "", trim($liste[2])));
$idcarde=urlencode(str_replace("\r\n", "", trim($liste[3])));
 
/***** DATA *****/
$pdf = & new FPDI();
$filename1 =generatePdf(1,$i,$liste[0],$liste[1] ,$liste[2],$genre,$jour,$mois,$annee,$idtype,$liste[3],$liste[5],$liste[7],$liste[8],$liste[6] ) ;
$pdf = & new FPDI();
$filename2 = generatePdf(2,$i,$liste[0],$liste[1] ,$liste[2],$genre,$jour,$mois,$annee,$idtype,$liste[3],$liste[5],$liste[7],$liste[8],$liste[6] ) ;
 
 
 
    }
 
 
//ici l'incrémentation 
$i=$i+1;
 
 
 
}
 
 
 
}
 
 
 
/* * *** Functions **** */
 
 
function generatePdf($modelNumber,$i,$tel,$nom 
........
........
.........
.......
 
 
return $filename;
 
}
?>


merci d'avance
A voir également:

2 réponses

Bilbonbon Messages postés 59 Statut Membre 18
 
Essaie l'opérateur ++.
$i++ ou ++$i incrémente ton truc comme tu le souhaite ( à vérifier quand même ^_^)

Sinon

Tu peux essayer d'enlever le "Z" voir enlever même les "0" et de commencer comme :

//ici la première valeur       
$i=10;


puis dans ta fonction generatePdf

function generatePdf($modelNumber,$i,$tel,$nom... )      
 ...      
// ici tu reconstitue ton Z0000..      
// genre  
$recompose = "Z" . str_pad($i, 6, "0", STR_PAD_LEFT);      
// voir même en faire une fonction et l'appeler avant d'appeler ta fonction generatepdf, ca t'evitera de modifier cette fonction  
...  
return $filename;      
       
}


Sinon tu passes par les expressions régulières, exemple ici :
https://stackoverflow.com/questions/4313288/how-to-increment-numeric-part-of-a-string-by-one
0
Azraka Messages postés 265 Statut Membre 13
 
Il me semble bien la même chose, à savoir que
$a = 'A'; echo ++$a;
affiche bien B. Donc ça devrait surement fonctionner pour ce que tu veux faire.
0