Toutankharton Posté 26 Juillet 2005 Partager Posté 26 Juillet 2005 Je voudrais que dans mes paragraphes, si jamais un nom propre étant dans la base de donnée s'affiche, celui ci soit transformé en lien... J'ai crée une petite fonction qui semble tourner à l'infini. En tout cas elle ne marche pas et s'affiche : Fatal error: Maximum execution time of 30 seconds exceeded.... au lieu de mon texte. La voici, si vous pouvez m'aider : function linkage($str) { $tok = strtok($str," \n\t"); while ($tok) { if(strlen($tok) >= 4 && preg_match("![A-Z]!",$tok[0])) { $sql_tok = "SELECT id,nom FROM noms_propres WHERE nom LIKE '%" .$tok. "%'"; $req_tok = mysql_query($sql_tok); mysql_num_rows($req_tok); if(mysql_num_rows($req_tok) < 0) { $str = str_replace($tok, "<a href=''>$tok</a>",$str); return $str; } } } $tok = strtok(" \n\t"); } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Boo2M0rs0 Posté 28 Juillet 2005 Partager Posté 28 Juillet 2005 La ligne "$tok = strtok(" \n\t");" doit être placée juste avant la fin de la boucle while, et pas juste après car sinon la boucle analyse toujours le même segment et continue à l'infini. Enfin, de mon point de vue ça sera pas un script très rapide (du point de vue d'un seul affichage ça ne se voit pas, mais si des dizaines de visiteurs passent, le serveur pourrait en souffrir) vu que le nombre de requête sql sera proportionnel (ou presque ...) au nombre de mot dans le paragraphe (c'est à dire , beaucoup !). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant