cs_mimimou
Messages postés48Date d'inscriptionvendredi 17 janvier 2003StatutMembreDernière intervention31 août 2011
-
9 juin 2008 à 21:21
cs_mimimou
Messages postés48Date d'inscriptionvendredi 17 janvier 2003StatutMembreDernière intervention31 août 2011
-
21 juin 2008 à 07:56
Sawadee khrap :)
Ca fait des heures que je me creuse la tete pour une fonction super simple en delphi, mais j trouve pas en php :
j ai un fichier texte converti en array avec $text = file('filename.txt'); il contient ce genre d infos (sans le no des lignes) :
1 - 18/03/2006 , comment by toto
2 bla bla bla
3
4 - 19/03/2006, comment by tutu
5 bla bla bla
6
7 - 20/03/2006, comment by titi
8 file renamed
9
10 - 21/03/2006, comment by tintin
11 bla bla bla
... ...
Donc, je voudrais pouvoir enlever une partie du texte, seulement celles ou le "comment" est egal a "file renamed", et si c le cas, il faut supprimer cette ligne mais aussi la precedente. dans cet exemple ca serait effacer les ligne 6,7 et 8.
J ai donc utilise dans une boucle la fonction if (stripos($text[$i], 'file renamed')!=0) { mais je ne sais pas quoi mettre apres!
Je file o lit j espere que l un d entre vous m aura trouve une astuce pour demain :)
Merci, ciaoo
miMim
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 20102 11 juin 2008 à 16:58
Salut,
je te conseillerais d'utiliser les fonctions file() ou file_get_contents() (avec un explode("\n", file_get_contents($url))) afin d'avoir le contenu de ton fichier, ligne par ligne.
Ensuite, tu fais une boule (foreach par exemple) avec un test (switch ou if/else). Par exemple, if($text == 'file renamed')
tu fait un unlik sur la ligne (unlink($fichier_ligne_par_ligne[$ligne]) et un autre avec $ligne - 1)
<hr />Si ma reponse te convient, merci de l'accepter !
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 20102 16 juin 2008 à 15:09
Salut,
Hum ... oui ya moyen ^^
Sinon, au lieu de faire $fichier[$i], tu as déjà $val pour ça ^^ (en plus, tu peux faire "as $key = > $val" )
ensuite, tu peux économiser un unset() en ajoutant la nouvelle ligne ($newFile) après le test (si c'est pas bon, on ne l'ajoute pas -> if/else.
Regarde, j'ai fais un petit truc (key(), end()) en fonction :
function CleanArrayWithLastLine(array $ArrayFile, $words)
{
$newFile = array();
foreach ($ArrayFile as $val )
{
if( strrpos(strtolower($val), strtolower($words)) ! == false )
{
end($newFile);
// Pointe sur la dernière ligne du tableau
unset($newFile[ key($newFile) ]);
// supprime la ligne courante continue; // Saute à la boucle suivante }
$newFile[] = $val; }
cs_mimimou
Messages postés48Date d'inscriptionvendredi 17 janvier 2003StatutMembreDernière intervention31 août 2011 10 juin 2008 à 05:53
merci pour ta reponse rapide, mais malheuresement j ai deja essaye cette fonction, et je pense que c est la seule a pouvoir faire ce que je veux, le truc c est que je ne dois pas l utiliser de la bonne facon....pourrais tu me mettre un bout de code stp??
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?