Probleme avec une expression regulière
10 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
- Lauweb
- Nouveau WRInaute

- Messages: 15
- Inscription: 22 Fév 2003
Probleme avec une expression regulière
Bonjour,
Je cherche à ne garder que le texte de certaines de mes pages afin d'en faire des fichiers texte.
La fonction strip_tags élimine bien toutes les balises mais pas l'interieur des balises <script> et <style>
Voici le script:
J'ai don essayé des tas de choses comme:
Mais ça ne donne rien!
Quelqu'un connait il une expression regulière ou une autre manière pour épurer completement une chaine de caractere?
Merci de votre aide precieuse.
Je cherche à ne garder que le texte de certaines de mes pages afin d'en faire des fichiers texte.
La fonction strip_tags élimine bien toutes les balises mais pas l'interieur des balises <script> et <style>
Voici le script:
- Code: Tout sélectionner
<?
$fd = fopen ("mapage.php", "r");
while (!feof ($fd))
{
$buffer = fgets($fd, 4096);
$buffer = strip_tags($buffer, '<title>');
$buffer = trim($buffer);
$buffer = eregi_replace("<title>(.*)</title>", "", "$buffer");
$buffer = eregi_replace("l'expression regulière que je cherche pour eliminer le contenu des balises scripts", "", "$buffer");
echo $buffer;
}
fclose($fd);
?>
J'ai don essayé des tas de choses comme:
- Code: Tout sélectionner
$buffer = preg_replace ('^<script(.*)>(.*)</script>$', " ", $buffer);
Mais ça ne donne rien!
Quelqu'un connait il une expression regulière ou une autre manière pour épurer completement une chaine de caractere?
Merci de votre aide precieuse.
- Lauweb
- Nouveau WRInaute

- Messages: 15
- Inscription: 22 Fév 2003
Non? personne n'a une petite idée?
Le script est sur le point de fonctionner, il semble que c'est une histoire d'espaces et de sauts de ligne qui empêche la bonne execution du script...
Si la page à traiter est de cette forme:
ça marche
Si la page à traiter est de cette forme (avec des sauts de ligne):
ça ne marche pas
Pourtant, j'ai bien enlevé les /n et les /r
Voir le code actuel:
Si quelqu'un peut m'eclairer, j'en serais ravi.
Merci d'avance.
Le script est sur le point de fonctionner, il semble que c'est une histoire d'espaces et de sauts de ligne qui empêche la bonne execution du script...
Si la page à traiter est de cette forme:
- Code: Tout sélectionner
<script>mafonction(){blableblibloblu}</script>
.....corps de la page.....
ça marche
Si la page à traiter est de cette forme (avec des sauts de ligne):
- Code: Tout sélectionner
<script>
mafonction(){blableblibloblu}
</script>
.....corps de la page.....
ça ne marche pas
Pourtant, j'ai bien enlevé les /n et les /r
Voir le code actuel:
- Code: Tout sélectionner
<?
$fd = fopen (monfichier.php, "r");
while (!feof ($fd))
{
$buffer = fgets($fd, 4096);
$buffer = str_replace(array("\n","\r"),array("",""),$buffer);
$buffer = preg_replace("/<script[^>]*>.*<\/script>/isU","",$buffer);
echo $buffer;
}
fclose($fd);
?>
Si quelqu'un peut m'eclairer, j'en serais ravi.
Merci d'avance.
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Lauweb a écrit:Le script est sur le point de fonctionner, il semble que c'est une histoire d'espaces et de sauts de ligne qui empêche la bonne execution du script...
Alors utilise l'option de recherche s, pour ta regex.
http://fr2.php.net/manual/fr/pcre.pattern.modifiers.php
Fred
- Lauweb
- Nouveau WRInaute

- Messages: 15
- Inscription: 22 Fév 2003
Merci George
Mais j'utilise déjà cette option:
Je bloque...
Mais j'utilise déjà cette option:
- Code: Tout sélectionner
$buffer = preg_replace("/<script[^>]*>.*<\/script>/isU","",$buffer);
Je bloque...
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Ah oui, en effet. En fait je crois que tu devrais d'abord récupérer tout le contenu dans ta variable et après seulement faire le traitement sur cette variable. Parce que là tu traites ligne par ligne donc effectivement les motifs ne correspondent pas.
Fred
Fred
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Ben au lieu d'écraser la valeur de $buffer à chaque ligne parcourue, tu concatènes à la suite et à la fin de ta boucle tu auras tout le contenu dans $buffer. L'opérateur de la concaténation est le point.
Fred
Fred
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
- Code: Tout sélectionner
<?php
$buffer = '';
$fd = fopen ("mapage.php", "r");
while (!feof ($fd)) {
$buffer .= fgets($fd, 4096);
}
fclose($fd);
?>
Et ensuite seulement tu fais ton traitement.
Fred
10 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- problème expression régulière
- Problème sur expression régulière
- Petit problème avec un expression régulière.
- Problème avec une expression régulière ereg_replace
- Problème pour définir une expression régulière.
- probleme de slash dans une expression reguliere
- probleme dans mon expression reguliere pour le rewriting
- re expression régulière...
- Expression régulière
- expression réguliere!please help!!!
- Sandbox, blacklistage et autres pénalités de Google
- Nouvelle étude de WebRankInfo : les mots-clés et le référencement
- La calculatrice Google
- Impact du PageRank dans le positionnement Google
- Google Suggest API
- Google News : trucs et astuces
- Les bonnes stratégies de mots-clés pour le référencement
- Google Trends
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
