par
Chimpunkette » 18 févr. 2014, 09:51
Bonjour, tout d'abord j'hesite entre ouvrir le fichier en r+ ou en w+.
Le principe de ce script est d'ecrire dans un fichier text L'id d'un message et son statut.
Ce que je veux faire c'est lorsqu'un nouveau statut arrive , je veux vérifier si l'id de ce message correspondant existe ou non dans le fichier text.
Si il existe alors je veux supprimer la ligne la ligne puis reecrire l'Id avec le nouveau statut.
Si il n'existe pas alors j'ecris la ligne directement.
Question comment supprimer la ligne si $_Get['MsgId] existe dans le fichier text ?
<?php
/* Ouvre le fichier en lecture et écriture, et place le pointeur de fichier au début du fichier.*/
$handle = fopen("/../../sms/status_msg.txt", "r+");
/*w+ :Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier
* et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.*/
// Lit le document dans un tableau
$lines = file("../.../../sms/status_msg.txt");
// initialise la variable nouvelle ligne a vrai
$new == TRUE;
//Pour chaque ligne
foreach ($lines as $line_msg => $lines){
/*Enleve le caractere |*/
$ch=explode($lines, "|");
// si la premiere colonne = $_Get['MsgId']
if(trim($ch)[1] == $_GET['MsgId']){
// Recupere toute les lignes du fichiers
$fichier .= $lines;
//Efface la ligne qui contient $_Get['MsgId']
//Ecrit la nouvelle ligne
fwrite($handle,"| ". $_GET['MsgId'].' | '.$_GET['status'].' |'."\n");
$new == FALSE;}
else{//si $_GET['MsgID'] n'existe pas
// recupere toutes les lignes existantes
$fichier.= $lines;
//Ecrit la nouvelle ligne
fwrite($handle,"| ". $_GET['MsgId'].' | '.$_GET['status'].' |'."\n");
}
}
fclose($handle);
?>
Bonjour, tout d'abord j'hesite entre ouvrir le fichier en r+ ou en w+.
Le principe de ce script est d'ecrire dans un fichier text L'id d'un message et son statut.
Ce que je veux faire c'est lorsqu'un nouveau statut arrive , je veux vérifier si l'id de ce message correspondant existe ou non dans le fichier text.
Si il existe alors je veux supprimer la ligne la ligne puis reecrire l'Id avec le nouveau statut.
Si il n'existe pas alors j'ecris la ligne directement.
Question comment supprimer la ligne si $_Get['MsgId] existe dans le fichier text ?
[php]<?php
/* Ouvre le fichier en lecture et écriture, et place le pointeur de fichier au début du fichier.*/
$handle = fopen("/../../sms/status_msg.txt", "r+");
/*w+ :Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier
* et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.*/
// Lit le document dans un tableau
$lines = file("../.../../sms/status_msg.txt");
// initialise la variable nouvelle ligne a vrai
$new == TRUE;
//Pour chaque ligne
foreach ($lines as $line_msg => $lines){
/*Enleve le caractere |*/
$ch=explode($lines, "|");
// si la premiere colonne = $_Get['MsgId']
if(trim($ch)[1] == $_GET['MsgId']){
// Recupere toute les lignes du fichiers
$fichier .= $lines;
//Efface la ligne qui contient $_Get['MsgId']
//Ecrit la nouvelle ligne
fwrite($handle,"| ". $_GET['MsgId'].' | '.$_GET['status'].' |'."\n");
$new == FALSE;}
else{//si $_GET['MsgID'] n'existe pas
// recupere toutes les lignes existantes
$fichier.= $lines;
//Ecrit la nouvelle ligne
fwrite($handle,"| ". $_GET['MsgId'].' | '.$_GET['status'].' |'."\n");
}
}
fclose($handle);
?>[/php]