J'ai ceci:
$text = '
hello world
hello
';
Comment supprimer
niquement s'il est sur sa propre ligne? Donc, avec l'exemple ci-dessus, le deuxième
Devrait être supprimé. Les résultats doivent être:
$text = '
hello world
hello
';
Via str_replace()
, je peux:
$text = str_replace(' ', '', $text);
Mais cela supprimera toutes les instances de
, Pas seulement quand il est sur sa propre ligne.
Vous pouvez diviser en lignes puis remplacer
pour la chaîne vide sur les lignes contenant uniquement un
et des espaces.
Nous conserverons les fins de ligne d'origine, en les capturant.
<?php
$text = '
hello world
hello
';
$lines = preg_split('@(\R)@', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach($lines as &$v)
if (trim($v) === ' ')
$v = str_replace(' ', '', $v);
$result = implode($lines);
var_dump($result);
Production:
string(40) "
hello world
hello
"