preg match()

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 : preg match()

Re: preg match()

par Berzemus » 08 mars 2011, 22:48

Tu as lu la documentation ?

Parce que la, on dirait que tu places le tout au petit bonheur la chance :wink:

Re: preg match()

par Vertigo » 08 mars 2011, 18:07

Je voudrais que mon mot apparaisse "entouré" (avant et après) de 40 caractères.
J'ai pensé à cette expresion régulière : "^.{40}$" ?

Seulement, je ne comprend pas comment construire la fonction preg_match()
Que mettre entre les paranthèses?
Je dois signaler le mot recherché : $mot
comment ce mot doit ressortir : <strong>$mot</strong>
et le contexte dans lequel il doit ressortir : ^.{40}$"

J'ai don fait comme cela preg_match($mot, <strong>$mot</strong>, ^.{40}$")
sans résultat...

Pourquoi ça ne marche pas?

Merci

preg match()

par Vertigo » 08 mars 2011, 14:41

Bonjour,

Pour le site d'un ami, je voudrais afficher les résultats d'une recherche en affichant le mot recherche en gras et dans son contexte (précédé et suivi de 10 mots par exemple, comme ça se fait beaucoup sur les sites. Et je voudrais que l'utilisateur puisse cliquer sur cette ligne pour être dirigé vers la page qui la contient.

Mes textes sont contenus dans une base de données qui contient des paragraphes. Actuellement, lors d'une recherche sur un mot, le résultat affiche le mot en gras et le paragraphe entier dans lequel il est contenu, plus un lien vers la page qui contient ce paragraphe.

Pour le gras, j'ai réussi avec
echo str_replace($mot, "<strong>$mot</strong>", $para['paragraphe']);

Mais je ne trouve pas pour afficher le mot dans son contexte...

Voici mon code entier:
$requete = "SELECT * FROM textes AS T, pages AS P WHERE P.id=T.idpage AND T.paragraphe LIKE '%$mot%'";

$resultat = mysql_query ($requete, $connexion);

while ($para = mysql_fetch_array ($resultat)) {
echo "<li>";
echo "<a href=\"$para[scriptphp]\">$para[titre]</a>
";
echo str_replace($mot, "<strong>$mot</strong>", $para['paragraphe']);
echo "</li>";
}
echo "</ul>";

Je sais que je dois utiliser une expression réguliere avec la fonction preg match().

Avez deja effectué cette commande, si oui, comment aviez-vous procédé?

Merci de votre aide