Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2360 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Enigmatique STRPOS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Enigmatique STRPOS

n°1659636
erwan83
Du Shift DEL tu te méfieras !
Posté le 17-12-2007 à 23:11:02  profilanswer
 

un petit bout de code tout simple (?#@!? :pfff: )
 

Code :
  1. echo '<br>'.$rest2;
  2. $debut = strpos($rest2, '</a>');
  3. echo '<br>'.$debut;


 
donc voici $rest2 dans son état à la ligne 1 :  
Le Titre de Son Site à Lui</a>&nbsp;<a href="http://www.site.com" target="_blank"><img src="/blank.gif" border="0......
 
Je voudrais attraper la chaine qui va du début de $rest2 à </a>&nbsp; (en rouge)
 
et ben, balèze, il trouve rien, il me renvoit $debut = ''
 
pourquoi diantre ?


Message édité par erwan83 le 17-12-2007 à 23:13:08

---------------
https://www.oise-net-multiservices.com
mood
Publicité
Posté le 17-12-2007 à 23:11:02  profilanswer
 

n°1659688
FlorentG
Posté le 18-12-2007 à 09:15:26  profilanswer
 

strpos retourne la position, pas le reste de la string. Utilise strstr à la place

n°1659693
dwogsi
Défaillance cérébrale...
Posté le 18-12-2007 à 09:23:40  profilanswer
 

[:rtfm]  
http://fr.php.net/strpos
 

Citation :

strpos — Trouve la position d'un caractère dans une chaîne
int strpos  ( string $haystack  , mixed $needle  [, int $offset  ] )


On te dit d'une part que ça te donne la position et d'autre part que ça retourne un int, c'est quand même assez clair?! non??
Et dans les "voir aussi" qu'est ce qu'on trouve?

Citation :

...et strstr().


Alors pourrais-tu prendre le temps de lire la documentation disponible en français plutôt que de créer un topic au moindre problème?! :o


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1659756
kao98
...
Posté le 18-12-2007 à 10:56:47  profilanswer
 

Vous excitez pas ! Il ne me semble pas qu'il n'a pas compris ce que fait cette fonction, mais que ce qui l'embête, c'est que ladite fonction ne renvoie rien plutôt que de renvoyer la position de "</a>" !


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1659761
dwogsi
Défaillance cérébrale...
Posté le 18-12-2007 à 11:01:08  profilanswer
 

Ouai enfin il nous aide pas non plus...
Il dit que strpos lui renvoie rien, c'est impossible puisque c'est soit FALSE, soit un int.
Ensuite il fait un usage de la fonction (de ce qu'elle renvoie pour être exacte) complètement stupide, s'il avait lu correctement la doc ça n'aurait certainement pas été le cas.


Message édité par dwogsi le 18-12-2007 à 11:02:06

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1659763
omega2
Posté le 18-12-2007 à 11:02:41  profilanswer
 

"Le Titre de Son Site à Lui</a>&nbsp;<a href="http://www.site.com" target="_blank"><img src="/blank.gif" border="0"
C'est ce qui est affiché en clair dans le navigateur (équivalent de "Le Titre de Son Site à Lui&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.site.com&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/blank.gif&quot; border=&quot;0&quot; )
ou ce que tu vois quand tu regardes le source de la page reçu par le navigateur?


Message édité par omega2 le 18-12-2007 à 11:20:57
n°1659765
kao98
...
Posté le 18-12-2007 à 11:03:55  profilanswer
 

dwogsi a écrit :

Ouai enfin il nous aide pas non plus...
Il dit que strpos lui renvoie rien, c'est impossible puisque c'est soit FALSE, soit un int.
Ensuite il fait un usage de la fonction (de ce qu'elle renvoie pour être exacte) complètement stupide, s'il avait lu correctement la doc ça n'aurait certainement pas été le cas.


 
 
Si tu lisais le manuel que tu as si bien linké justement, tu aurais pu y lire que, dans certains cas, la fonction peut renvoyer une chaine vide !
 

Citation :


This function may return Boolean FALSE,but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "".


Message édité par kao98 le 18-12-2007 à 11:04:57

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1659768
dwogsi
Défaillance cérébrale...
Posté le 18-12-2007 à 11:05:48  profilanswer
 

Mince, c'est un coup dur ça!
M'enfin quand même, c'est pas du tout adapté à ce qu'il veut faire.
En tout cas pas de la façon dont il l'utilise.

 

Edit :
En fait je persiste.
C'est pas dans la version FR de la doc que je link et puis il ne s'agit que d'une subtilité de PHP, 0 == "" == FALSE.
Donc il conviendrait de faire les bons tests quand on utilise cette fonction, style ===FALSE.
Pas trace de ce genre de test dans son code à ce que je sache.

Message cité 1 fois
Message édité par dwogsi le 18-12-2007 à 11:11:30

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1659773
kao98
...
Posté le 18-12-2007 à 11:09:44  profilanswer
 

dwogsi a écrit :

Mince, c'est un coup dur ça!
M'enfin quand même, c'est pas du tout adapté à ce qu'il veut faire.
En tout cas pas de la façon dont il l'utilise.


Héhé ;)
 
Il a peut être une raison à vouloir utiliser strpos plutôt qu'une fonction d'extraction de chaine ! Quand il fait un echo $debut, c'est peut-être simplement pour essayer de savoir ce que retourne strpos pour pouvoir l'utiliser ensuite, et pas pour afficher ce qu'il souhaite directement !  
 
Donc aidons le à utiliser strpos, et au passage, on peut très bien lui proposer d'autres solutions tout calmement plutôt que de lui balancer un RTFM sans chercher à comprendre ce qu'il veut faire  [:kao98]


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1659777
dwogsi
Défaillance cérébrale...
Posté le 18-12-2007 à 11:13:12  profilanswer
 

Ok alors s'il tiens à utiliser strpos(), qu'il fasse un test avec ===FALSE, ensuite aller voir du côté de substr ou quelque chose comme ça pour récupérer le début de la chaîne à partir du résultat de strpos().


Message édité par dwogsi le 18-12-2007 à 11:15:30

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
mood
Publicité
Posté le 18-12-2007 à 11:13:12  profilanswer
 

n°1660405
erwan83
Du Shift DEL tu te méfieras !
Posté le 19-12-2007 à 00:03:50  profilanswer
 

Bon j'explique
 
voici le code
 

Code :
  1. $titre2 = strpos($htmline, 'CLASS="TITRE">');
  2. $titre3 = strpos($htmline, '</A> <A');
  3. $rest = substr($htmline, 10, $pos_fin-16);
  4. $rest = substr($rest, $pos_deb+1, strlen($rest)-$pos_deb);
  5. $compteur_lien = $compteur_lien +1;
  6. $lien[$compteur_lien] = $rest;
  7. $temp = $htmline;
  8. $debut = strpos($htmline, 'class=');
  9. $rest = substr($htmline,$debut+27,strlen($htmline));
  10. $debut = strpos($htmline, "a href" );
  11. $rest2 = substr($rest,0,$debut);
  12. echo '<br>... :'.$rest2;
  13. $debut = strpos($rest2, '</a>');
  14. echo '<br>'.$debut;
  15. $rest = substr($htmline, 10, $titre3-16);
  16. $rest = substr($rest, $titre3+1, strlen($rest)-$titre3);
  17. echo '<br>'. $rest;


 
et à la ligne 13 ça merde...
bon c'est encore un peu brouillon mais ça va s'améliorer


Message édité par erwan83 le 19-12-2007 à 00:10:03

---------------
https://www.oise-net-multiservices.com
n°1660455
kao98
...
Posté le 19-12-2007 à 08:51:13  profilanswer
 

Relis le topic, on t'as donné toutes les infos dont tu as besoin :jap:


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Enigmatique STRPOS

 

Sujets relatifs
Recherche multiple avec strposErreur fonction PHP strpos
Plus de sujets relatifs à : Enigmatique STRPOS


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)