solution simple pour supprimer un morceau de chaine

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 : solution simple pour supprimer un morceau de chaine

par dunbar » 23 avr. 2008, 15:27

A vue d'oeil, ne fonctionnera pas si le premier message aléatoire comporte des balises de mise en forme HTML (très probable qu'il comporte au moins des <br /> et des <strong></strong>) : /
Oui je sais mais sa demande ne parle que d'un message avant le <div........ donc dans ce cas là (c'est la demande)cela fonctionne.
Maintenant oui peut-être que :?: , probablement que :?: etc.... on imagine tout ce que l'on veut mais pour sa question la solution fonctionne

par Hywan » 23 avr. 2008, 11:17

Bah utilises preg_match_replace() avec une bonne expression, et ça devrait vraiment suffir. Je ne vois pas où est le problème.

Si tu veux apprendre les expressions régulières : lumadis.be et expreg.com seront tes sites favoris.

par VaN » 23 avr. 2008, 00:33

A vue d'oeil, ne fonctionnera pas si le premier message aléatoire comporte des balises de mise en forme HTML (très probable qu'il comporte au moins des <br /> et des <strong></strong>) : /

par dunbar » 22 avr. 2008, 23:06

Donc ça ne va pas, il faudrait que je garde seulement le premier message de taille aléatoire. Tout ce qui suit est en fait une citation d'un message précédent, que je ne souhaite pas enregistrer dans la base.
Comme ceci alors :?:
<?php
$inv= strrev('Message de taille aléatoire
<div style="border-left: 3px solid #8abad6; padding-left: 5px; font-style: italic">[email protected] a &eacute;crit :<br /><br />
message de taille aléatoire</div>');

$reste = strrchr($inv,">");

$rep =  strrev($reste);

echo $rep ;
?>
Mais je ne suis pas certain que cela soit la meilleur solution, mais elle fonctionne :wink:

par VaN » 22 avr. 2008, 21:21

Donc ça ne va pas, il faudrait que je garde seulement le premier message de taille aléatoire. Tout ce qui suit est en fait une citation d'un message précédent, que je ne souhaite pas enregistrer dans la base.

Re: solution simple pour supprimer un morceau de chaine

par dunbar » 22 avr. 2008, 21:04

Bonjour,

j'ai une chaine de caractère de cette forme :

Code : Tout sélectionner

Message de taille aléatoire <div style="border-left: 3px solid #8abad6; padding-left: 5px; font-style: italic">[email protected] a &eacute;crit :<br /><br /> message de taille aléatoire</div>
Et je souhaiterai pouvoir supprimer de cette chaine la seconde partie, c'est à dire à partir du <div>, jusqu'a à la fin.

Quelle est la meilleure méthode pour faire cela ?
$string ='Message de taille aléatoire
<div style="border-left: 3px solid #8abad6; padding-left: 5px; font-style: italic">[email protected] a &eacute;crit :<br /><br />
message de taille aléatoire</div>';

echo preg_replace('#\{((?>[^{}]+)|(?R))*\}#', '', $string);
Affichera
Message de taille aléatoire
[email protected] a écrit :

message de taille aléatoire

solution simple pour supprimer un morceau de chaine

par VaN » 22 avr. 2008, 20:42

Bonjour,

j'ai une chaine de caractère de cette forme :

Code : Tout sélectionner

Message de taille aléatoire <div style="border-left: 3px solid #8abad6; padding-left: 5px; font-style: italic">[email protected] a &eacute;crit :<br /><br /> message de taille aléatoire</div>
Et je souhaiterai pouvoir supprimer de cette chaine la seconde partie, c'est à dire à partir du <div>, jusqu'a à la fin.

Quelle est la meilleure méthode pour faire cela ?