Reconnaissance automatique d'une chaine en ph
Résolu/Fermé
Liteulbob
Messages postés
37
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
7 août 2008
-
2 avril 2008 à 17:56
Liteulbob Messages postés 37 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 7 août 2008 - 3 avril 2008 à 17:53
Liteulbob Messages postés 37 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 7 août 2008 - 3 avril 2008 à 17:53
A voir également:
- Reconnaissance automatique d'une chaine en ph
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Reconnaissance musique en ligne sans télécharger - Guide
- Chaine tnt gratuite sur mobile - Guide
- Message automatique thunderbird - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
17 réponses
IdleMan
Messages postés
243
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 juin 2012
60
2 avril 2008 à 18:26
2 avril 2008 à 18:26
Pour ton premier cas j'ai eu meme soucis , j'ai bricolé un script qui marche chez moi mais je ne peut pas te garantir que ce soit le meilleur moyen de faire :
$html = 'salut , je te conseille d\'aller sur https://www.commentcamarche.net/ parce que c\'est pas mal'; preg_match_all("#http://[a-z0-9.-_]+\.[a-z]{2,4}/#", $html, $matches, PREG_SET_ORDER); foreach ($matches as $val) { $html = str_replace($val[0],"<a href='".$val[0]."'>".$val[0]."</a>",$html) ; } echo $html;
Liteulbob
Messages postés
37
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
7 août 2008
2
2 avril 2008 à 19:04
2 avril 2008 à 19:04
wow j'ai pas tout compris au
mais merci beaucoup, je vais tester ça demain ! (il est 2h du mat chez moi ^^).
Pour la deuxième partie, ça me semble très semblable en tout cas.
Le script a l'air très gourmand (pour la fonction preg_match_all), mais je suppose qu'il n'y a pas d'autre fonction.
Merci ^^
#http://[a-z0-9.-_]+\.[a-z]{2,4}/#
mais merci beaucoup, je vais tester ça demain ! (il est 2h du mat chez moi ^^).
Pour la deuxième partie, ça me semble très semblable en tout cas.
Le script a l'air très gourmand (pour la fonction preg_match_all), mais je suppose qu'il n'y a pas d'autre fonction.
Merci ^^
IdleMan
Messages postés
243
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 juin 2012
60
2 avril 2008 à 20:58
2 avril 2008 à 20:58
Cette fonction utilise les expression régulieres , je dois admettre que ce n'est pas la technique la plus facile a aborder en php ^^ en réalité c'est tres simple mais il faut connaitre la syntaxe , si ça t'interesse , je t'invite a mater cette page :
https://www.commentcamarche.net/contents/803-php-expressions-regulieres
https://www.commentcamarche.net/contents/803-php-expressions-regulieres
Liteulbob
Messages postés
37
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
7 août 2008
2
3 avril 2008 à 09:53
3 avril 2008 à 09:53
re !
merci pour l'info, je vais regarder de ce côté là.
Ton script marche en effet, mais, il a besoin de deux et uniquement deux slashes, je crains.
S'il n'y a pas le dernier slashe, le lien n'est pas détecté, et s'il y en a trop, il s'arrete avant ...
Bon je vais voir du côté des expressions régulières pour tenter de régler ça merci ^^.
Je te dirais si je trouve quelque chose ... (enfin je sens que ça va vite me dépasser) ...
merci pour l'info, je vais regarder de ce côté là.
Ton script marche en effet, mais, il a besoin de deux et uniquement deux slashes, je crains.
S'il n'y a pas le dernier slashe, le lien n'est pas détecté, et s'il y en a trop, il s'arrete avant ...
Bon je vais voir du côté des expressions régulières pour tenter de régler ça merci ^^.
Je te dirais si je trouve quelque chose ... (enfin je sens que ça va vite me dépasser) ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
IdleMan
Messages postés
243
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 juin 2012
60
3 avril 2008 à 11:12
3 avril 2008 à 11:12
De mon coté je cherche encore a perfectionner ma fonction , on se tiens au courant mutuelement ^^
idleman@idlewave.com
idleman@idlewave.com
Liteulbob
Messages postés
37
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
7 août 2008
2
3 avril 2008 à 12:03
3 avril 2008 à 12:03
oh magnifique !
Alors là tu vas être ravi (et dégouté je crains) :
Et t'en fais pas, je n'ai même pas lu ce qu'étaient les expressions régulières (oui honte à moi), j'ai simplement un peu plus cherché sur google.
Merci donc à http://www.presence-pc.com/forum/ppc/Programmation/couper-affichage-sujet-2751-1.htm pour son message très précieux (il voulait découper l'affichage de l'url quand celle ci est trop longue).
(purée je suis baba héhé)
Alors là tu vas être ravi (et dégouté je crains) :
$html = 'venez manger des cactus sur http://jaime.com/cactus/cunégonde/annoce.php '; $contenu = preg_replace('!http://[a-z0-9%&=\?;./_-]+!i', '<a href="$0">$0</a>', $_REQUEST['contenu']); echo $contenu;
Et t'en fais pas, je n'ai même pas lu ce qu'étaient les expressions régulières (oui honte à moi), j'ai simplement un peu plus cherché sur google.
Merci donc à http://www.presence-pc.com/forum/ppc/Programmation/couper-affichage-sujet-2751-1.htm pour son message très précieux (il voulait découper l'affichage de l'url quand celle ci est trop longue).
(purée je suis baba héhé)
Liteulbob
Messages postés
37
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
7 août 2008
2
3 avril 2008 à 12:07
3 avril 2008 à 12:07
pardon je suis allé trop vite dans le copier coller, j'ai mal modifié les noms de mes variables :
(mais bon c'est la meme chose ...)
$contenu = 'venez manger des cactus sur http://jaime.com/cactus/cunegonde/annoce.php'; $contenu = preg_replace('!http://[a-z0-9%&=\?;./_-]+!i', '<a href="$0">$0</a>', $contenu); echo $contenu;
(mais bon c'est la meme chose ...)
IdleMan
Messages postés
243
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 juin 2012
60
3 avril 2008 à 12:19
3 avril 2008 à 12:19
Cette fonction ne marche pas chez moi , mais elle a l'air bien plus simple effectivement .
IdleMan
Messages postés
243
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 juin 2012
60
3 avril 2008 à 12:21
3 avril 2008 à 12:21
Ha ben on a posté en meme temp ^^ je vais tester ça tout de suite
IdleMan
Messages postés
243
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 juin 2012
60
3 avril 2008 à 12:24
3 avril 2008 à 12:24
ya quand meme un soucis , l'url http://jaime.com/cactus/cunégonde/annoce.php ne s'affiche pas jusqu'au bout :
voir :
http://idlewave.com/config/fonction.php
sinon c'est la grande classe !
voir :
http://idlewave.com/config/fonction.php
sinon c'est la grande classe !
IdleMan
Messages postés
243
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 juin 2012
60
3 avril 2008 à 14:08
3 avril 2008 à 14:08
D'ailleur meme sur ce fofo ça ne s'affiche pas , on dirais que c'est a cause de l'accent .
EDIT : c'ets bien a cause de l'accent , il faut preciser tous les caracteres speéciaux entres les [] , et on aura un script encore plus performant que sur ce fofo (baleze !!)
EDIT : c'ets bien a cause de l'accent , il faut preciser tous les caracteres speéciaux entres les [] , et on aura un script encore plus performant que sur ce fofo (baleze !!)
Liteulbob
Messages postés
37
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
7 août 2008
2
3 avril 2008 à 14:36
3 avril 2008 à 14:36
hum bon bein j'ai peut etre ta solution alors :
et honte sur nous deux parce que la solution est sur le lien que tu m'as donné concernant les expressions régulières de comment ca marche !!
http://www.commentcamarche.net/php/phpreg.php3
$Texte = "Bienvenue sur http://www.commentcamarche.net cher ami"; $Texte = ereg_replace("(http://)((:punct:|:alnum:)*)", "<a href=\"\\0\">\\2</a>",$Texte);
et honte sur nous deux parce que la solution est sur le lien que tu m'as donné concernant les expressions régulières de comment ca marche !!
http://www.commentcamarche.net/php/phpreg.php3
IdleMan
Messages postés
243
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 juin 2012
60
3 avril 2008 à 14:51
3 avril 2008 à 14:51
Certe on est vraiment con cela dit cette fonction ne marche pas plus :
http://idlewave.com/config/fonction.php
Les accents bugent aussi .
En revanche avec l'avant derniere fonction que tu a proposée en rajoputant les caracteres speciaux ça marche presque , il y a seulement le lien de redirection qui foire :
http://idlewave.com/config/fonction2.php
http://idlewave.com/config/fonction.php
Les accents bugent aussi .
En revanche avec l'avant derniere fonction que tu a proposée en rajoputant les caracteres speciaux ça marche presque , il y a seulement le lien de redirection qui foire :
http://idlewave.com/config/fonction2.php
Liteulbob
Messages postés
37
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
7 août 2008
2
3 avril 2008 à 15:12
3 avril 2008 à 15:12
oui c'est vrai pour les accents, le script est pas parfait, mais des url à accents c'est quand meme une faute non ?
je m'y connais toujours pas en expressions régulières, mais il n'y a pas moyen d'utiliser la fonction php urlencode sur le lien découpé ?
Là j'essaie de détecter les balises
Est ce que tu sais comment créer une expression régulière pour détecter ces balises et les supprimer ?
Là j'ai quelque chose qui détecte les
je m'y connais toujours pas en expressions régulières, mais il n'y a pas moyen d'utiliser la fonction php urlencode sur le lien découpé ?
Là j'essaie de détecter les balises
et pour transformer l'expression contenue en un lien vers le champ recherche, comme comment ca marche, en fait... mais peine perdue, je trouve pas de script, et j'essaie en vain un peu n'importe quoi ...
Est ce que tu sais comment créer une expression régulière pour détecter ces balises et les supprimer ?
Là j'ai quelque chose qui détecte les
et (je ne sais meme pas pourquoi l'expression s'arrete bien aux
]]), mais qui les garde affichés, et surtout qui l'inclue dans le mot cherché.
$contenu = preg_replace('!\[\[[a-z0-9[:blank:]%&=\?;./_-]+!i', '<a href="/recherche.php?search=$0">$0</a>', $_REQUEST['contenu']); echo $contenu; echo '<form action="test.php">'; echo '<textarea name="contenu" cols="96" rows="5"></textarea>'; echo '<input class="bouton" type="submit" value="Valider">'; echo '</form>';
Liteulbob
Messages postés
37
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
7 août 2008
2
3 avril 2008 à 15:21
3 avril 2008 à 15:21
aie aie aie, l'affichage du post est complètement modifié, malgré les balises de code autour des crochets ...
Bon, quoi qu'il en soit, j'ai fait n'importe quoi avec trois neurones, mais suis tombé sur quelque chose qui marche pour ma deuxième question.
Alors oui, c'est extrêment moche et n'en suis pas fier du tout mais bon ... ce n'est que ce que j'ai sous la main pour l'instant :-$.
En fait dans l'idéal j'aurais aimé récupérer le mot entre balises (le $0) et vérifier si il correspond à un champ donné d'une table, ou sinon à une autre, et sinon le faire pointer vers la page de recherche.
Bon, quoi qu'il en soit, j'ai fait n'importe quoi avec trois neurones, mais suis tombé sur quelque chose qui marche pour ma deuxième question.
$contenu = preg_replace('!\[\[[a-z0-9[:blank:]%&=\?;./_-]+!i', '<a href="/recherche.php?search=$0">$0</a>', $contenu); echo str_replace(']]','',str_replace('[[','',$contenu));
Alors oui, c'est extrêment moche et n'en suis pas fier du tout mais bon ... ce n'est que ce que j'ai sous la main pour l'instant :-$.
En fait dans l'idéal j'aurais aimé récupérer le mot entre balises (le $0) et vérifier si il correspond à un champ donné d'une table, ou sinon à une autre, et sinon le faire pointer vers la page de recherche.
IdleMan
Messages postés
243
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 juin 2012
60
3 avril 2008 à 16:07
3 avril 2008 à 16:07
Ce bug d'affichage est bien lourd! Faut faire click droit avec la souris sur les lignes ça les efface.
Sinon tu a raison pour les accents , c'est une faute mais tant qu'a faire une fonction autant la faire la plus complete possible ^^ , et puis on ne sais jamais , dans un futur lointain ,quand tous les ndd a caracteres normeaux seront pris , les accents seront peut etre acceptés XD
Sinon tu a raison pour les accents , c'est une faute mais tant qu'a faire une fonction autant la faire la plus complete possible ^^ , et puis on ne sais jamais , dans un futur lointain ,quand tous les ndd a caracteres normeaux seront pris , les accents seront peut etre acceptés XD
Liteulbob
Messages postés
37
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
7 août 2008
2
3 avril 2008 à 17:53
3 avril 2008 à 17:53
oui c'est vrai, bien d'accord.
Bon, je vais m'arrêter sur ces solutions peu satisfaisantes mais qui sont déjà ça ...
en conclusion :
DETECTER LES URL :
-
ou :
-
(mais la reconnaissance de l'adresse s'arrete au premier caractère spécial comme un accent)
DETECTER LES BALISES DOUBLES CROCHETS ET LES TRANSFORMER EN LIEN :
sur ce, bonne soirée ;-)
Bon, je vais m'arrêter sur ces solutions peu satisfaisantes mais qui sont déjà ça ...
en conclusion :
DETECTER LES URL :
-
$contenu = preg_replace('!http://[a-z0-9%&=\?;./_-]+!i', '<a href="$0">$0</a>', $contenu);
ou :
-
$Texte = ereg_replace("(http://)((:punct:|:alnum:)*)", "<a href=\"\\0\">\\2</a>",$Texte);
(mais la reconnaissance de l'adresse s'arrete au premier caractère spécial comme un accent)
DETECTER LES BALISES DOUBLES CROCHETS ET LES TRANSFORMER EN LIEN :
$contenu = preg_replace('!\[\[[a-z0-9[:blank:]%&=\?;./_-]+!i', '<a href="/recherche.php?search=$0">$0</a>', $contenu); echo str_replace(']]','',str_replace('[[','',$contenu));
sur ce, bonne soirée ;-)