Ptite question PHP // Facile pour les pros

Ptite question PHP // Facile pour les pros - PHP - Programmation

Marsh Posté le 14-12-2005 à 13:38:11    

Bonjour,
 
Je n'ai aucune notion de PhP mais j'essai de m'y mettre, et je voudrai savoir comment faire pour arriver a faire un truc de ce genre :
 
Si "Mondocument.htm" contient "lalalala"
       Alors j'affiche "OK"
 
Pour ouvrir "mondocument.htm" j'ai fait un fopen, en fait c'est surtout le "contient" que je n'arrive pas à trouver !
 
Merci !


Message édité par moi_antoine le 14-12-2005 à 13:41:28
Reply

Marsh Posté le 14-12-2005 à 13:38:11   

Reply

Marsh Posté le 14-12-2005 à 13:42:04    

Code :
  1. if (strstr($variableavecledocument, 'contient')) {
  2. echo 'OK';
  3. }else {
  4. echo 'NOK';
  5. }


 
si je ne dis aps de connerie. Y'a sans doute moins consommateur que le preg_match.

Message cité 1 fois
Message édité par cinocks le 14-12-2005 à 13:44:49

---------------
MZP est de retour
Reply

Marsh Posté le 14-12-2005 à 13:42:24    

Il faut bien faire un fopen et recupérer le contenu du fichier. Apres tu peux utiliser la fonction strpos
http://www.nexen.net/docs/php/anno [...] tripos.php
 
il donnera la position. S'il y a pas il te retourne false , s'il trouve il te donne sa position.

Reply

Marsh Posté le 14-12-2005 à 13:43:00    

Il faut que je remplace 'contient' par quoi ici ?

Reply

Marsh Posté le 14-12-2005 à 13:43:02    

cinocks a écrit :

Code :
  1. if (preg_match('contient', $variableavecledocument)) {
  2. echo 'OK';
  3. }else {
  4. echo 'NOK';
  5. }


 
si je ne dis aps de connerie. Y'a sans doute moins consommateur que le preg_match.


harf je pense que c'est le plus simple ont va pas chipoter :D

Reply

Marsh Posté le 14-12-2005 à 13:44:07    

Berceker United a écrit :

harf je pense que c'est le plus simple ont va pas chipoter :D


 
J'ai un peu de mal a repéré par koi il faut que je remplace 'contient' ....

Reply

Marsh Posté le 14-12-2005 à 13:45:33    

moi_antoine a écrit :

Il faut que je remplace 'contient' par quoi ici ?


Code :
  1. $buffer = '';
  2. $fd = fopen ("ton_fichier", "r" );
  3. while (!feof ($fd)) {
  4.   $buffer. = fgets($fd, 4096);
  5. }
  6. if (preg_match('contient', $buffer)) {
  7.   echo 'OK';
  8. }else {
  9.   echo 'NOK';
  10. }
  11. fclose ($fd);

Reply

Marsh Posté le 14-12-2005 à 13:46:36    

bah par 'lalala'.  
 
j'ai remplacer le preg_match qui fonctionne avec les expressions regulieres par strstr qui est beaucoup light. Elle retourne si oui ou non la chaine est presente.
 
http://fr2.php.net/manual/fr/function.strstr.php


---------------
MZP est de retour
Reply

Marsh Posté le 14-12-2005 à 14:00:22    

Note :  Si vous voulez juste déterminer si un needle particulier se trouve dans la chaîne haystack, utilisez la fonction strpos() qui est plus rapide et qui consomme moins de ressources.

Reply

Marsh Posté le 14-12-2005 à 14:08:41    

arf, j'ai lu trop vite. strpos est plus adaptée.


---------------
MZP est de retour
Reply

Marsh Posté le 14-12-2005 à 14:08:41   

Reply

Marsh Posté le 14-12-2005 à 14:11:14    

Berceker United a écrit :

Note :  Si vous voulez juste déterminer si un needle particulier se trouve dans la chaîne haystack, utilisez la fonction strpos() qui est plus rapide et qui consomme moins de ressources.


 
Merci!
 
Bon je viens d'essayer, mais j'y arrive pas. Voici mon code :

Code :
  1. <?php
  2. $open = fopen("$test", "r" );
  3. $test = "disques.htm";
  4.    if (strstr($test, 'disquedown.gif'))
  5.         {
  6.         echo 'OK';
  7.         }
  8.    else
  9.         {
  10.         echo 'PAS OK';
  11.         }
  12.  
  13.  
  14. fclose($open);
  15.  
  16. ?>

Reply

Marsh Posté le 14-12-2005 à 14:12:46    

ben disons que si tu as mis dans cet ordre, c'est normal que ça déconne...
faut pitete rensengner $test AVANT de faire un fopen dessus...
 
EDIT:
et pis c'est pas suffisant le fopen, faut un truc genre "fgets" pour lire le contenu du fichier après l'avoir ouvert


Message édité par Xav_ le 14-12-2005 à 14:14:19

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 14-12-2005 à 14:15:33    

moi_antoine a écrit :

Merci!
 
Bon je viens d'essayer, mais j'y arrive pas. Voici mon code :

Code :
  1. <?php
  2. $open = fopen("$test", "r" );
  3. $test = "disques.htm";
  4.    if (strstr($test, 'disquedown.gif'))
  5.         {
  6.         echo 'OK';
  7.         }
  8.    else
  9.         {
  10.         echo 'PAS OK';
  11.         }
  12.  
  13.  
  14. fclose($open);
  15.  
  16. ?>



 
 
Ca ne veut pas dire grand chose ton bout de code.
 

Code :
  1. <?php
  2. $file = file_get_contents($chemin_acces);
  3.    if (strpos($file , 'disquedown.gif'))
  4.         {
  5.         echo 'OK';
  6.         }
  7.    else
  8.         {
  9.         echo 'PAS OK';
  10.         }
  11. unset($file);
  12.  
  13. ?>


---------------
MZP est de retour
Reply

Marsh Posté le 14-12-2005 à 14:16:12    

le fopen ouvre un pointeur sur un fichier, il faut ensuite le lire.


---------------
MZP est de retour
Reply

Marsh Posté le 14-12-2005 à 14:20:46    

cinocks a écrit :

Ca ne veut pas dire grand chose ton bout de code.
 

Code :
  1. <?php
  2. $file = file_get_contents($chemin_acces);
  3.    if (strpos($file , 'disquedown.gif'))
  4.         {
  5.         echo 'OK';
  6.         }
  7.    else
  8.         {
  9.         echo 'PAS OK';
  10.         }
  11. unset($file);
  12.  
  13. ?>



 
Ok avec ce code ca marche.
C'est bizarre le php, je suis habitué au C et c'est pas pareil DU TOU DU TOUT dans la logike du truc

Reply

Marsh Posté le 14-12-2005 à 14:23:15    

c'est la meme logique. pour un fopen, il faut fait des lecture ensuite.


---------------
MZP est de retour
Reply

Marsh Posté le 21-12-2005 à 14:34:04    

J'ai une autre question !!!!
 
 
Il faudrait que ma page en PHP scan une page HTML ( ca je sais le faire maintenant), et que tous les nombres dans cette page >99, il me les divise par 1024 et les affiche ensuite.
Je sais pas du tout coment faire.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed