Remplacer texte par lien automatiquement via base SQL

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 : Remplacer texte par lien automatiquement via base SQL

par Invité » 22 févr. 2007, 14:52

Héhé c'est plsu propre mais ça ne marche pas, le texte est repeter deux fois.

par Davee » 22 févr. 2007, 14:20

Salut je suis pas un pro du php mais je crois que preg_replace fonction avec les expressions regulières.
Moi je pencherais plutôt pour la fonction str_replace . :)

A+ David.

Remplacer texte par lien automatiquement via base SQL

par polusdemus » 22 févr. 2007, 03:10

salut,

je voudrais savoir comment je peux faire pour remplacer un mot dans un texte. Mais tout e, sachant que c'est mot son dans une base de donnée. :o :-° :( Vous voulez du concret: c'est simple je fais des fiches sur des films à partir d'un formulaire,j'enregistre dans une bdd puis je les affiche sur une page:

Code : Tout sélectionner

Film français réalisé par Jean Luc Godard Avec Jean-Paul Belmondo, Anna Karina Genre : Drame Durée : 1h 55min
Je veux que les noms propres soient remplacé par des liens conduisant à leur fiche (exemple: annakarina.html ) mais que si leur nom est enregistré dans une table nommé personnage par exemple.

je pense qu'il faut utilise preg_replace() mais combiné à deux tables: je bloque !

Bon voila ce que j'ai essayé et evidement ça marche sauf que c'est pas tout à fait ça
<?php
  $os = "Charles Chaplin";
  $texte = "François Trufaut admire Charles Chaplin mais n'a jamais fait joué dans ces films Anna Karina.";
  $texte = preg_replace('#'.$os.'#', '<a href="'.$os.'.html">'.$os.'</a>', $texte);
  echo $texte ;
?>
//le script affiche Charles Chaplin en lien vers charliechaplin.html :)
j'ai donc essayer autrre chose: avec un array
<?php
  $os = array("Charles Chaplin", "Anna Karina", "Francois Truffaut");
  $texte = "François Truffaut admire Charles Chaplin mais n'a jamais fait joué dans ces films Anna Karina.";
  $texte = preg_replace('#'.$os.'#', '<a href="'.$os.'.html">'.$os.'</a>', $texte);
  echo $texte ;
?>
//le script ne remplace rien :'(
mais ça ne marche pas !! Pourquoi ?


Nouvelle idée:
<?php
include 'conf.php';

$reponse = mysql_query("SELECT * FROM acteurs");
while ($os = mysql_fetch_array($reponse))
{
  $texte = "François Trufaut admire Charles Chaplin mais n'a jamais fait joué dans ces films Anna Karina.";
  $texte = preg_replace('#'.$os['nom'].'#', '<a href="'.$os['id'].'.html">'.$os['nom'].'</a>', $texte);
  echo $texte ;
}
?>

Voila ce qu'il affiche:

François Trufaut admire Charles Chaplin mais n'a jamais fait joué dans ces films Anna Karina.
François Trufaut admire Charles Chaplin mais n'a jamais fait joué dans ces films Anna Karina.

:( Bon début mais moi je voudrais qu'il affcihe tout dans la même phrase.[/quote]