2009-11-15 7 views
1

Jetexte zone ne fonctionne pas envelopper les

$ad_text=wordwrap(nl2br($_POST['annonsera_text']), 45, '<br />\n'); 

Toute idée pourquoi l'affichage ci-dessus dans une longue chaîne?

Formulaire method='POST' et enctype='multipart/form-data' et textarea wrap='hard'.

Je veux que la zone de texte affichée soit exactement la même que lorsque l'utilisateur y a entré le texte.

MISE À JOUR:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nl 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

ce qu'on obtiens:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

En utilisant wordwrap fonction en PHP.

Il ne semble pas y avoir de différence si je mets wrap="hard" en HTML non plus.

+1

"Ne fonctionne pas" est un peu vague. Qu'est-ce qui se passe au lieu de ce que vous voulez arriver? –

+0

Afficher les textes 'avant' et 'après'.Expliquez pourquoi le texte "après" ne correspond pas à vos attentes. –

+0

Je vous ai donné toutes les infos, je n'arrive pas à comprendre, tout ce qui me manque ici? –

Répondre

0

Dans ces cas, vous devez spécifier quatrième paramètre de la fonction wordwrap(), ce qui lui ordonne de rompre les mots, si elles sont plus grandes que la largeur requise:

$ad_text=wordwrap(nl2br($_POST['annonsera_text']), 45, '<br />\n', true); 
+0

comment pourrais-je être si aveugle ... merci! –

1

La bonne réponse à cela va être trouvée dans votre méthode de débogage. Au lieu de mettre ceci en une seule ligne, séparez-les en plusieurs lignes et vérifiez la sortie.

echo $ad_text = $_POST['annonsera_text']; 
echo $ad_text = nl2br($ad_text); 
echo $ad_text = wordwrap($ad_text, 45, '<br />\n'); 
0

La chaîne d'entrée

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nl aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

contient 4 caractères distincts: "a", "\ n", "l" et "".

Je me attends nl2br() pour créer cette sortie

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br />\nl aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

l'appel wordwrap fait ceci:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br<br />\n/>\nl aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

Ceci est du code mal formé. Dans le navigateur, les bad tags br n'ont aucun effet. Et les nouvelles lignes n'affectent pas la mise en page, donc cela ressemble à une chaîne de 'a'. Je ne peux pas expliquer où votre 'l' va.

Dans votre appel wordwrap, la chaîne de remplacement est entre apostrophes, de sorte que le \ n 'est composé de deux barres obliques inverses et n. Utilisez des guillemets doubles pour développer l'évasion en un véritable saut de ligne: Changer '<br />\n'-"<br />\n"

Vous pouvez également laisser le soit l'appel ou l'appel nl2brwordwrap, en fonction de ce que vous voulez. Par ailleurs, avez-vous essayé de définir le quatrième argument, $cut, à true dans l'appel wordwrap()?

Questions connexes