begin process at 2012 05 31 09:11:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

rechercher et remplacer expressions dans une page


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

rechercher et remplacer expressions dans une page

mercredi 25 novembre 2009 à 18:29:49 | rechercher et remplacer expressions dans une page

hdh


Bonjour,
du fait qu'il ne me reste plus de cheveux à m'arracher je me tourne vers vous avec mon problème ;-)

je fais un script qui
1 - lit le une page html (stockée en dure sur mon ftp)(ça ca va)
2 - je voudrais parser le corps de cette page pour y remplacer certaines strings et remplacer par d'autre.(ça ca va pas)
3- écriture d'une nouvelle page avec le contenu mis à jour (ça ca va)

le truc c'est que j'arrive pas à trouver une boucle qui remplace correctement mes expressions (probablement utiliser des expressions régulières)??

Les expressions à remplacer sont de deux types dans la page html
a-
Code PHP :
#civ#
que je voudrais remplacer par
Code PHP :
<? print civ; ?>


b-
Code PHP :
#tt:civ#
que je voudrais remplacer par
Code PHP :
<? civ(); ?>

(cette expression est reconnaisable avec son ":" )

Auriez-vous des tuyaux (à défaut de cheveux à replanter ??)
D'avance merci pour votre aide !!
H


le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus
jeudi 26 novembre 2009 à 08:31:42 | Re : rechercher et remplacer expressions dans une page

kohntark

Membre Club
Salut,

Un simple str_replace ne suffit pas ??

Et :
- le tag d'ouverture php s'écrit <?php (et pas <?)
- "<? print civ; ?>" civ est une constante ?

Cordialement,


Kohntark -

jeudi 26 novembre 2009 à 09:22:38 | Re : rechercher et remplacer expressions dans une page

hdh

je ne pense pas que cela me convienne, mais bon suis pas certain, en effet
- il peut y avoir plusieurs occurences de #civ# dans ma page
- je voudrais à terme utiliser une fonction avec une expression régulière pour pouvoir remplacer automatiquement tous les #xxxx# par des <?php print $xxxx; ?>, les #yyyy# par des <?php print $yyy; ?>

Je suis tout à fait à l'écoute : si tu as des conseils (ou carrément des sources) je suis preneur !!

au plaisir de te (vous)lire !!
H


le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus
jeudi 26 novembre 2009 à 11:54:33 | Re : rechercher et remplacer expressions dans une page

kohntark

Membre Club

Je suis tout à fait à l'écoute : si tu as des conseils (ou carrément des sources) je suis preneur !!


=> str_replace() !!
Si tu n'as que ces remplacements à faire c'est totalement inutile de passer par des expressions régulières, même la fonction n'est pas utile si tu n'as pas besoin de traiter 20 fichiers.
Une seule ligne suffit.


Cordialement,

Kohntark -

jeudi 26 novembre 2009 à 16:10:09 | Re : rechercher et remplacer expressions dans une page

hdh

Hello,
ca m'a l'air un peu plus complexe :-/
1- Il faut que je parse le fichier html et détecte toutes les balises commencant et finissant par un dièse
>> exemple #civ# mais aussi #tutuu#.... je ne saurais pas à l'avance quelles seront ces balises c'est pour cela que je voudrais faire quelquechose de dynamique

2- une fois que j'ai trouvé les balises il me faut récupérer la string entre les dièses et la transformer en variable php
>> exemple si on a trouvé la balise #civ# on remplace par $civ
>> exemple si on a trouvé la balise #tuututu# on remplace par $tuututu

c'est vraiment une nécessité de travailler avec une boucle je pense... et mon truc pr l'instant de détection de balise ne fonctionne pas

Code PHP :
if(preg_match("'\#libcivilite\#'", $chaine)) 	// fonctionne
//if(preg_match("'\#[:alnum:]\#'", $chaine))				// fonctionne pas
     {
	 echo 'On a au moins une expression du type #ChaineChiffresLettres#'; 
	 }
else { echo 'On a pas une expression de ce type';} 



le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus
jeudi 26 novembre 2009 à 18:49:02 | Re : rechercher et remplacer expressions dans une page

kohntark

Membre Club
Je mets du temps à comprendre, et tu mets du temps à bien expliquer

C'est plus clair maintenant.
Si je m'en tiens pile poil a tes exemples nul besoin de faire une boucle, un preg_replace suffit :
Code PHP :
<?php
preg_replace('`#([^#]*)#`', '$\1', $t);
?>


Bien sur si les exemples de ton premier message (#tt:xxx#, civ()) sont toujours valables il faudra modifier le code. Je te laisse cette modif, n'hésite pas à reposter si tu rencontres des problèmes.

Cordialement,

Kohntark -

vendredi 27 novembre 2009 à 10:19:54 | Re : rechercher et remplacer expressions dans une page

hdh

Hello,
Oula la la je n'ai jamais été aussi proche :-) merci pour ton aide !!
Néanmoins cela n'est pas encore parfait : l'interpretation des variables n'est pas affichées..
Je voudrais en effet obtenir 'Bonjour Madame Dupont, comment ça va ? ' alors que cela affiche 'Bonjour $libcivilite $nom, $content_question'
(comme tu pourras le remarquer plutot que de passer par une fonction pour les #content:xxxxxxxx# je passe finalement par une variable.) cela ne change rien au dev ci-dessous.

Pourrais-tu me dire comment faire afficher le contenu de ma variable plutot que le nom de la variable ?

d'avance grand merci pour ton aide !


Code PHP :
$libcivilite="Madame";
$nom="Dupont";
$content_question = "comment ca va ?";

$t = 'Bonjour #libcivilite# #nom#, #content:question#';
$u = preg_replace('`#([^#]*)#`', '$\1', $t);
$t = str_replace('content:', 'content_', $u);

print "<hr>".$t."<hr>";
// je voudrais obtenir 'Bonjour Madame Dupont, comment ça va ? '
// alors que cela affiche 'Bonjour $libcivilite $nom, $content_question'  


le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus
dimanche 29 novembre 2009 à 23:02:56 | Re : rechercher et remplacer expressions dans une page

hdh

Heeeeeeeeeelp :-)
J'ai tenté de contourner la difficulté ce we mais cette solution semble la plus intéressante.. mais je scotsh lamentablement.. un brin d'aide de développeur me permettrait d'avancer...
y aurait il une âme charitable .. un Kohntark par exemple ???
Au plaisir de vous lire !!
H


le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus
lundi 30 novembre 2009 à 20:30:35 | Re : rechercher et remplacer expressions dans une page

kohntark

Membre Club
Réponse acceptée !
Re Hdh,

Ca y est, t'es totalement chauve ?

Je ne suis pas certain que tu retiennes la meilleure solution. Peut être en existe t il une plus simple, mais toi seul peux le savoir.

Pour m'en tenir à ton problème, quelque chose comme ça devrait faire l'affaire :
Code PHP :
<?php
function replace($m) {
    $m[1] = str_replace('content:', 'content_', $m[1]);
    global ${$m[1]};
    return ${$m[1]};
}
$sPattern = '`#([^#]*)#`';
$u = preg_replace_callback($sPattern, 'replace', $t);
?>


En espérant que ça puisse t'aider.

Bonne soirée,



Kohntark -

mercredi 2 décembre 2009 à 00:20:28 | Re : rechercher et remplacer expressions dans une page

hdh


Hello,
Je te remercie pour ton aide sur ce soucis : les cheveux repoussent !!
J'ai changé un brin le code que tu proposais pour l'adapter à ma problématique : ca fonctionne tiptop, je vais pouvoir continuer à avancer sur mon projet !
Code PHP :
function replaceVar($m) {
    $m[1] = str_replace(':', '_', $m[1]);
    global ${$m[1]};
    return ${$m[1]};
}
$sPatternVar = '`#([^#][a-zA-Z0-9_:]*)#`';
$body1 = preg_replace_callback($sPatternVar, 'replaceVar', $body);

Encore merci pour ton aide et ta patience :-)
H

le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus

1 2

Cette discussion est classée dans : page, code, php, remplacer, expressions


Répondre à ce message

Sujets en rapport avec ce message

comment remplacer du code dans un fichier A par un autre code dans le fichier B [ par michelvernet2 ] bonjour, j'ai un site à refaire, page par page ( je sais c'est dépassé, mais c'est comme ça ) . Actuellement, j'opère manuellement : je copie mon code code php login [ par mannoutta ] j'ai une page qui contient un champ login et un champ mot de passe alors je veux ecrire un code php don't il me permet de se connecter à deux pages di redirection code php [ par mannoutta ] salut , help me please :( je sais pas comment faire la redirection d'une page.... en fait j'ai une table nommé admin( login , password ) ; une aut A l'aide : Warning: Cannot modify header information [ par FXPHANTOM ] Bonjour, J'appelle tous les webmasters expérimentés pour résoudre mon problème . J'ai un hébergement mutualisé chez OVH , j'ai installé mon site sur URGENT: besoin de votre aide ... fonction UPDATE [ par FXPHANTOM ] Ami du jour , bonjour , et oui c'est encore moi !!! J'ai besoin de votre aide pour un probleme que je n'arrive pas a resoudre !!! j'y ai passé la jo Problème de débutant avec variable get etc ... [ par jimyarts ] Bonjour à toute la communauté, J'ai un problème qui m'embête vraiment dans la construction de mon site d'autant plus que je n'en connais pas la cause form qui appelle la page où il se trouve [ par Krasha ] Bonjour à tous, Je suis en train d'essayer d'installer un petit sondage sur mon site et sur la page de création des sondages j'ai une erreur : [i]Not Problème de page.. [ par shadow578 ] Bonjour, Je vais vous exposer mon problème afin que vous m'aidiez à le résoudre ... Donc j'ai une page 'news.php' sur le qu'elle à l'aide d'un 'while $POST [ par eva4 ] Bonjour, Dans une page j'ai des données qui arrivent sous cette forme : [code=php]$valeur1 = $_POST['mon_champ']; $valeur2 = $_POST['mon_ [PHP] Problème de sécurisation de page. [ par sarahjtm ] Bonjour, Je vous explique mon problème en essayant d'être le plus compréhensible. Je dispose d'un script Allopass (qui permet d'acheter un code), ce


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales