2017-09-04 3 views
0

J'avais des problèmes lorsque j'essayais d'utiliser la chaîne et quand je l'ai copié dans le bloc-notes ++ et vu tous les caractères, il affichait les symboles attachés suivants. Ma connaissance est qu'ils sont des sauts de ligne et des espaces. La question est, je ne peux pas sembler les obtenir enlevés de ma chaîne?Effacement de CR CL et d'espaces dans la chaîne PHP

Explication:

J'ai une fonction qui shell_exec utilise pour récupérer des informations à partir d'une base de données stockées.

$output = trim(shell_exec("'".$command."' 2>&1")); //Trimmed version 
return $output; 

J'ai un système de crédit, mais quand ils se chargent de la page, il appelle la fonction d'obtenir des crédits en fonction de l'utilisateur, etc.

$Credits = Sqlite('select "Credits" from TBL WHERE User = "bla" limit 1'); 

La chose est, le crédit revient avec un à côté . Donc, si j'ai 9.50 stocké, j'ai reçu �9.50. En regardant dans cela, j'ai remarqué les caractères ci-dessus inclus dans la chaîne?

Mes tentatives PHP:

$Credits = preg_replace('/\s/', '', $Credits); //Clear all spaces 
//$Credits = str_replace(' ', '', $Credits); //Clear spaces <-- dont work either 
$Credits = str_replace('\r\n', '', $Credits); //Clear all new lines 
echo $Credits; //Still returns the new line etc 

string issue

+0

Veuillez publier le [MCVE (exemple complet vérifiable minimal)] (http://stackoverflow.com/help/mcve). Les $ Credits = preg_replace ('/ \ s /', '', $ Credits); 'devraient faire le travail. Eh bien, s'il y a des caractères Unicode, vous avez besoin de ''/\ s/u'', mais cela ne semble pas être le cas ici. Aussi, pourquoi ne pas essayer [** 'trim()' **] (http://php.net/manual/pl/function.trim.php)? –

+0

Pourquoi voulez-vous supprimer ces caractères? – Philipp

+0

btw. vous devriez utiliser '" \ r \ n "' au lieu de ''\ r \ n'' - des séquences d'échappement ne fonctionnant que dans des chaînes' '' '' ' – Philipp

Répondre

0

$ Crédits est juste une variable et ne changera pas le contexte de votre dossier. Donc, essayez ceci:

<?php 
$text = file_get_contents('source.txt'); 
echo '<pre>'; // to display any new line from linebreak 
echo $text; 

echo '<br>====<br>'; 

$text = preg_replace('/\r\n/','a',$text); // a is just an indicator of original linebreak which you can use '' empty instead 

echo $text // display text after linebreak is replaced from variable $text 
file_put_contents('source2.txt', $text); // save this to file with linebreaks removed 
// or replace content of source.txt 
?>