5 votes

preg_replace : comment faire ?

S'il y a une chose que je ne peux pas comprendre (ou apprendre), c'est preg_replace syntaxe. J'ai besoin d'aide pour supprimer tous les symboles possibles (espace, tabulation, nouvelle ligne, etc.) entre les éléments suivants > y < .

C'est-à-dire que j'ai un tel XML :

<?xml version=\"1.0\" encoding=\"UTF-8\"?><bl>  <snd>BANK</snd>    <rcv>ME</rcv>  <intid>773264</intid> <date>17072012</date></bl>

J'ai besoin que ça ait l'air :

<?xml version=\"1.0\" encoding=\"UTF-8\"?><bl><snd>BANK</snd><rcv>ME</rcv><intid>773264</intid><date>17072012</date></bl>

Pour l'instant, j'ai trouvé ça :

$this -> data = preg_replace('\>(.*?)<\', '><', $data);

Mais cela ne correspond pas du tout à ce dont j'ai besoin. Une solution serait appréciée.

7voto

nickb Points 37850

Vous êtes proche, vous avez juste besoin de délimiteurs et de restreindre votre recherche aux caractères d'espace :

preg_replace('#>\s+<#', '><', $data);

# est le caractère de délimitation, et \s est une abréviation de tout caractère d'espace.

Vous pouvez le voir fonctionner dans cet exemple .

1voto

Indian Points 475

Pour supprimer les espaces :

preg_replace('/\s\s+/', ' ', $data);

Pour supprimer les nouvelles lignes :

$string = preg_replace('/\r\n/', "", $data);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X