2010-11-23 22 views
3

J'utilise PHP pour créer du HTML de base. Les balises sont toujours les mêmes, mais les liens réels/titres correspondent à des variables PHP:PHP: Comment éviter les sauts de ligne indésirables

$string = '<p style="..."><a href="'.$html[$i].'"><strong><i>'.$title[$i].'</i></strong></a> 
<br>'; 
echo $string; 
fwrite($outfile, $string); 

Le html résultant, à la fois comme écho (quand je considère la source de la page) et dans le simple fichier txt J'écris à, se lit comme suit:

<p style="..."><a href="http://www.example.com 
"><strong><i>Example Title 
</i></strong></a></p> 
<br> 

Bien que cela fonctionne, ce n'est pas exactement ce que je veux. Il semble que PHP ajoute un saut de ligne à chaque fois que j'interromps la chaîne pour insérer une variable. Y a-t-il un moyen d'empêcher ce comportement?

+6

Etes-vous absolument certain qu'il n'y a pas de nouvelle ligne à la fin des variables que vous insérez? Essayez de les entourer de trim() pour voir si cela l'arrête. Si c'est le cas, vos variables contiennent les sauts de ligne. –

+0

Merci, j'ai utilisé rtrim et cela a résolu le problème. Puisque vous l'avez résolu en premier, si vous ajoutez une réponse dans les prochaines 24 heures, je serai sûr de l'accepter. – user460847

Répondre

2

Bien qu'il n'affectera pas votre page HTML du tout avec les sauts de ligne (sauf si vous utilisez pre ou text-wrap: pre), vous devriez être en mesure d'appeler trim() sur ces variables pour supprimer les sauts de ligne.

Pour savoir si votre variable a une nouvelle ligne à l'avant ou à l'arrière, essayez cette regex

var_dump(preg_match('/^\n|\n$/', $variable)); 

(je pense que vous devez utiliser des guillemets simples, PHP ne se transforme pas votre \n dans une nouvelle ligne littérale la chaîne).

0

Les sauts de ligne apparaissent en raison de l'encodage multi-octets, je crois. Essayez:

$newstring = mb_substr($string_w_line_break,[start],[length],'UTF-8'); 

Cela a fonctionné pour moi quand les sauts de ligne étranges sont apparus après l'analyse syntaxique html.