voici un exposé rapide de mon problème :
j'ai des projets avec des synopsis très long.
je voudrais donc afficher une partie seulement du synopsis.
le problème est que les synopsis sont de ce style :
donc comme vous le voyez il y a des balises qui s'ouvrent et se ferment. mais quand je n'affiche qu'une partie certaines de ces balises ne se ferment pas.<h4>Carl Allen est au point mort. <i>No future</i>... jusqu'au jour où il s'inscrit à un programme de développement personnel basé sur une idée toute simple : dire oui à tout ! Carl découvre avec éblouissement le pouvoir magique du <i>"Yes"</i>, et voit sa vie professionnelle et amoureuse bouleversée du jour au lendemain : une promotion inattendue, une nouvelle petite amie... Mais il découvrira bientôt que le mieux peut être l'ennemi du bien, et que toutes les occasions ne sont pas bonnes à prendre</h4>
je voulais donc écrire un script pour les fermer automatiquement !
le script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 while($tb=mysql_fetch_array($sql)){ $i++; $synopsisPetit=substr($tb['synopsis_projets'], 0, 300); $ouvertes="#((<)([a-zA-Z0-9]+>))#"; $fermees="#</[a-zA-Z0-9]+>#"; preg_match_all($ouvertes, $synopsisPetit, $tbOuv, PREG_PATTERN_ORDER); preg_match_all($fermees, $synopsisPetit, $tbFerm, PREG_PATTERN_ORDER); $nbOuv=count($tbOuv[0]); $nbFerm=count($tbFerm[0]); echo '<pre>'; print_r($tbOuv); echo '</pre>'; if($nbOuv>$nbFerm){ $nombre=$nbOuv-$nbFerm; $m=0; while($nombre>0){ if(preg_match('#((<)([a-zA-Z0-9]+>))#', $tbOuv[0][$m])){ $text=preg_replace('#((<)([a-zA-Z0-9]+>))#', "$2/$3", $tbOuv[0][$m]); } else{ $text="merde"; } echo '<pre>'.$text.'</pre> youpi'; $m++; $nbFerm++; $nombre=$nbOuv-$nbFerm; } }donc le print_r comme vous pouvez le voir me sort le bon nombre d'occurences dans les tableaux mais ne me montre pas ce qu'il y a dedans (pour les tableau 0 et 1) et pour les autres, tout va bien !Array
(
[0] => Array)
(
[0] =>)
[1] =>
[2] =>
[1] => Array (
[0] =>)
[1] =>
[2] =>
[2] => Array (
[0] => <)
[1] => <
[2] => <
[3] => Array (
[0] => h4>)
[1] => i>
[2] => i>
youpi
youpi
j'ai testé mes regex sur test de regex et elles fonctionnent très bien !
donc je ne comprends pas !
help :'(
merci d'avance
Partager