import xml et saut de ligne imaginaire

Mammouth du PHP | 504 Messages

04 mai 2011, 18:35

J'utilise simple_xml qui fonctionne bien pour importer du contenu dans ma base de données. Cependant lorsque j'importe le contenu, il me sort des saut deligne imaginaire qui n'exite pas dans le pargraphe du xml.

Il me sort ça en import:

Les prévisions pour le maïs indiquent que les hybrids transgéniques
occuperont 57,2 % de la superficie totale, si l'on compte la récolte d'été et
la seconde récolte d'hiver. Pour la récolte d'été de maïs, la superficie
cultivée avec des semis transgéniques résistants aux insects représente 44,4
% de la superficie totale.

Au lieu de:

Les prévisions pour le maïs indiquent que les hybrids transgéniques occuperont 57,2 % de la superficie totale, si l'on compte la récolte d'été et la seconde récolte d'hiver. Pour la récolte d'été de maïs, la superficie cultivée avec des semis transgéniques résistants aux insects représente 44,4 % de la superficie totale.

Voici le code que j'utilise pour l'import 5 anoter que je passe par un formulaire:
$SubHeadLine=$NewsLines->{"SubHeadLine"};
    echo'VERIF SubHeadLine : <br/>
     <textarea name="SubHeadLine" style="width: 100%; height: 100px">'.$SubHeadLine.'</textarea><br /><br />';
      }
Quelqu'un a une idée pour supprimer ces saut de ligne qui n'existe pas ?

ViPHP
ViPHP | 928 Messages

04 mai 2011, 18:49

Salut ajoute dans ton code :
$SubHeadLine = str_replace(array("\r\n", "\n"), array(' ', ' '), $SubHeadLine);
Tu as probablement des \n qui trainent dans tes cdata :)

ViPHP
ViPHP | 2577 Messages

04 mai 2011, 20:18

Bonjour,

A mon avis, il n'y a pas vraiment de saut de ligne (à vérifier dans le source de la page.

L'utilisation de WRAP="OFF" dans ton tag textarea peut changer cette impression. Cependant je ne suis pas sur que le résultat soit plus pratique.

Mammouth du PHP | 504 Messages

04 mai 2011, 20:19

ça a marcher. super merci.

Par contre lorsque je récupère mes valeurs, entre <p> > </p> par exemple, il se trouve qu'il ne prende pas en considération du texte comme:

<a href="http://www.xxxx.com.br">http://www.xxxxxx.com.br</a>.

Est ce normal ? et y a t-il un moyen de prendre en considération ce contenu?

ViPHP
ViPHP | 2577 Messages

04 mai 2011, 20:38

Bonjour,

Je ne suis pas sur d'avoir bien compris.

Dans le cas de de problème, il est bien de regarder le source HTML. Est ce que ton problème ne vient pas de la transformation de < en < ou quelque chose dans le genre ?

Il faut savoir que aussi que le textarea présente du texte sans prendre en compte le html. Je ne connais pas le comportement lorsqu'il y a un tag HTML dans le contenu (en particulier </textarea>)

Eventuellement regarde du coté de http://fr.php.net/manual/fr/function.ht ... lchars.php et des fonctions associés

Mammouth du PHP | 504 Messages

04 mai 2011, 22:25

Re,

En fait pour etre plus clair, j'utilise simple_xml pour parser mon xml. ça ça marche. sauf dans le cas où j'ai:

Code : Tout sélectionner

<p> blalbla blabla <a href="http://www.xxxx.com.br">http://www.xxxxxx.com.br</a>.</p>
Dans ce cas simple_xml me retourne seulement:

blalbla blabla qui se trouve entre les <p> ce que je lui demande mais pas la chaine <a href="http://www.xxxx.com.br">http://www.xxxxxx.com.br</a>. ?

Est ce normal ? Comment lui demander qu'il me retourne tous ce qui se trouve entre le <p>.

ViPHP
ViPHP | 928 Messages

04 mai 2011, 22:28

Tu ne peux pas avec simplexml (d'où son nom, cette classe n'est pas faîte pour parser des structures complexes). Je te conseil d'utiliser plutôt le parser XML standard de PHP (qui est plus chiant à utiliser par contre) http://fr.php.net/manual/fr/function.xm ... create.php ou sinon utilise le parser DOM, je crois qu'il gère ces cas de figure.