Traitement de fichiers et ereg => please help ! - PHP - Programmation
Marsh Posté le 11-07-2002 à 09:44:25
c'est ce test la qui plante:
if(!(eregi("Sauvegarde terminée ",$contenu)))
alors que mon fichier contient bien cette ligne
Marsh Posté le 11-07-2002 à 10:26:09
Code :
|
Le pb est certainement dans la variable $contenu qui ne contient que la dernière ligne du fichier et non le fichier entier. Par conséquent la ligne où il y a 'Sauvegarde réussi' n'était pas là. Comme il ne trouvait pas ça le eregi() était vrai, vu qu'il était inversé ça faisait TRUE et au final le test était vrai donc ERREUR.
Autre chose : en général on utilise preg_*() au lieu de ereg()... http://www.zend.com/tips/tips.php?id=107&single=1
Marsh Posté le 11-07-2002 à 10:32:56
Merci Dost67 mais ca a pa l'air de fonctionner :
Citation : if(preg_match('/Erreur/i', $texte) || !preg_match('Sauvegarde terminée/i', $texte)) { |
=>Warning: Delimiter must not be alphanumeric or backslash in c:\program files\easyphp\www\cit\sauvegarde\yat.php on line 17
if(preg_match('/Erreur/i', $texte) || !preg_match('/Sauvegarde terminée/i', $texte)) => il me trouve quand meme une erreur
PS : normallement $contenu ne contient pas que la derniere ligne le meme test sur d'autre fichier fontionne...
Marsh Posté le 11-07-2002 à 11:12:55
aidez moa !!!
ca marche avec les fichiers logs generes sous nt mais pas avec ceux generes sous 2000
quand j'affiche $contenu j'ai ca en debut de fichier :ÿþ et il ne traite pas les sauts de lignes
Marsh Posté le 11-07-2002 à 11:13:49
ah j'ai reenregistrer mon fichier et ca marche ! (il etait codé en unicode, je l'ai passé en ANSI ) => y a un moyen d'automatiser ca?
Marsh Posté le 11-07-2002 à 12:49:25
Oups j'ai dit n'importe quoi, je viens de m'en rendre compte : je croyais que fread() était un alias de fgets() qui ne lit qu'1 ligne.
Dans ce cas j'ai dit n'importe quoi mais alors pourquoi
Code :
|
alors que
Code :
|
donne la même chose ?
Sinon pour preg j'ai oublié un délimiteur en effet.
Marsh Posté le 11-07-2002 à 14:17:17
ben c'est normal :
"fread() reads up to length bytes from the file pointer referenced by fp. Reading stops when length bytes have been read or EOF is reached, whichever comes first."
comme je lis le fichier en entier, qu'il soit dans un while ou pas c pareil...
Marsh Posté le 12-07-2002 à 08:56:18
personne ne sait comment transformer un fichier texte unicode en ANSI ?(fonction php peut etre?)
Marsh Posté le 12-07-2002 à 11:20:44
Peut-etre que ca peut t'aider :
http://dev.nexen.net/scripts/details.php?scripts=599
Marsh Posté le 12-07-2002 à 12:22:30
non ca ne marche pas...
merci quand meme...
Marsh Posté le 11-07-2002 à 09:31:04
Est ce qqun voit ou j'ai pu faire une erreur parcekela a me prend le chou !
voila mon script :
$fp=fopen("cit.txt",'r');
while($contenu=fread($fp,filesize("cit.txt" ))){
echo $contenu;
}
if(eregi("Erreur",$contenu)||!(eregi("Sauvegarde terminée ",$contenu))){
echo("<font color=\"#FF0000\" size=\"+1\">ce fichier contient une erreur</font>" );
}
else{
echo("Ce fichier ne contient pas d'erreur" );
}
et le fichier 'cit.txt' :État de la sauvegarde
Opération : sauvegarde
Destination de sauvegarde active : 4mm DDS
Nom du média : "Cit-2"
Sauvegarde de "C: "
Jeu de sauvegardes nº 5 sur le média nº 1
Description de la sauvegarde : "Normal"
Type de sauvegarde : Normal
Sauvegarde débutée le 10/07/2002 à 21:01.
Avertissement : le fichier \Program Files\EasyPHP\apache\logs\access.log est en cours d'utilisation. Il a été ignoré.
Avertissement : le fichier \Program Files\EasyPHP\apache\logs\error.log est en cours d'utilisation. Il a été ignoré.
Avertissement : le fichier \Program Files\EasyPHP\mysql\data\mysql.err est en cours d'utilisation. Il a été ignoré.
Avertissement : le fichier \Program Files\Microsoft ISA Server\ISALogs\WEBW2002072.log est en cours d'utilisation. Il a été ignoré.
Sauvegarde terminée le 10/07/2002 à 21:39.
Répertoires : 1144
Fichiers : 12042
Ignorés : 4
Octets : 1 089 964 698
Durée : 37 minutes et 55 secondes
----------------------
Et il me sort une erreur je capte pas pkoi
Message édité par kayasax le 11-07-2002 à 09:52:30
---------------
All we need is a soul revolution