Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2011, 04h30   #1
Invité de passage
 
Inscription : avril 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 4
Points : 0
Points : 0
Par défaut Question rapide pour aide regex

Bonjour à tous et merci d'avance pour votre attention et votre aide qui sait ?

voici mon problème,

j'ai une string contenant un texte $texte

Ce texte fait une certaine longueur et jaimerais en fait rechercher un mot dans ce texte et afficher 50 caractère avant ce mot, le mot en gras et 50 caractère après.

Déja est ce possible ou non ? Si non, le gras est facultatif.

j'ai testé cette requête mais elle ne fonctionne pas :
Code :
1
2
3
4
ereg((.*)(.{20})($_POST['keywords'])(.{20})(.*),$_data1['instructions'],$affichage);

echo $affichage[2].$affichage[3].$affichage[4]; 
je vous avous être un peu bloqué donc si quelqu'un peut m'aider ou me proposer une solution alternative.


Merci
antoine.dumaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 08h35   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Je ne pense pas qu'une expression régulière soit nécessaire.

Tu peux essayer ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$text = 'tata titi toto tutu'; // Texte complet
$search = 'toto'; // Mot à chercher
$nb = 5; // Nombre de caractères à afficher avant et après le mot trouvé
 
$pos = strpos($text, $search);
 
if ($pos === FALSE) {
	echo 'Mot non trouvé';
} else {
	$start = max(0, $pos - $nb);
	$end = min(strlen($text), $pos + strlen($search) + $nb) - $start;
 
	echo substr($text, $start, $end);
}
?>
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h44.


 
 
 
 
Partenaires

Hébergement Web