[RESOLU] Insertion automatique d'URL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Insertion automatique d'URL

Re: Insertion automatique d'URL

par finipe » 30 juil. 2017, 17:57

Alors déjà, pour la postérité, voici la fonction (qui fonctionne) :

Code : Tout sélectionner

// $DB est la variable de connexion à la base de données function MEF_Bio($DB, $texte) { if(preg_match_all("/compositeurs\.php\?id=([0-9]+)/s", $texte, $match)) { $replace = array(); for($i=0 ; $i<sizeof($match[1]) ; $i++) { $id = $match[1][$i]; $result = mysqli_query($DB, "SELECT nom,prenom FROM compositeurs WHERE id=".$id); $row = mysqli_fetch_array($result); $replace[] = "biographie/".MEF_URL($row['prenom']."-".$row['nom'])."_".$id.".html"; } $texte = str_replace($match[0], $replace, $texte); } return $texte; }

Quoiqu'il en soit, je cherche toujours comment éviter d'insérer manuellement un lien dans chaque biographie renvoyant à un autre compositeur.

Re: Insertion automatique d'URL

par finipe » 30 juil. 2017, 15:16

Merci pour cette réponse éclair !

Pour ce qui est de la détection, il doit être possible de détecter si le nom est précédé et suivi d'un espace ou d'un signe de ponctuation ?
Idéalement, il faudrait que deux cas soient possible : le nom du compositeur seul, ou bien son prénom suivi de son nom.

Re: Insertion automatique d'URL

par or 1 » 30 juil. 2017, 14:38

preg_match pour trouver compositeur.php?id=1 et récupérer l'id.
récupérer le nom et prénom à partir de l'id.
str_replace pour remplacer compositeur.php?id=1 par biographie/jean-sebastien-bach_1.html

détecter les noms des compositeurs, c'est compliqué. si l'on cherche bach dans un texte, on peut tomber sur le mot bachot et y mettre un lien inadéquat.

Insertion automatique d'URL

par finipe » 30 juil. 2017, 14:27

Bonjour à tous,

J'aimerais m'économiser du travail de saisie en créant une automatisation, mais je ne sais pas trop par quel bout le prendre...
Voilà le topo :

- J'ai une table avec des biographies de compositeurs, chacune contenant notamment un texte, qui souvent contient des liens renvoyant vers d'autres biographies.
- J'ai mis en place un système de rewrite url, et je dois donc modifier toutes mes urls inscrites dans les textes de biographies

Plutôt que de tout modifier, comment puis-je créer une fonction (à base de preg_replace j'imagine) qui remplacerait mes url de type compositeur.php?id=1 en url du type biographie/jean-sebastien-bach_1.html ? Ainsi, je n'aurais pas à tout reprendre manuellement.

Et puis, dans le même ordre d'idée, je me disais que je pourrais encore faire mieux, en faisant une fonction qui détecte dans une biographie les noms de compositeurs enregistrés dans la base, et qui crée automatiquement le lien dans le texte. Comme ça, je vire tous les liens, et ça les créera automatiquement dans l'affichage, sans pour autant avoir besoin de les créer dans le texte inscrit dans la base.

Merci pour votre aide !