Domanda

Così, quando corro json_encode, afferra il \ r \ n da MySQL pure. Ho cercato di riscrivere le stringhe nel database senza alcun risultato. Ho provato a cambiare la codifica in MySQL dalle latin1_swedish_ci predefinite alla ascii_bin e utf8_bin. Ho tonnellate fatta di str_replace e chr (10), chr (13) roba. Non so che altro dire o fare in modo sto andando appena lascio questo qui ....

$json = json_encode($new);
if(isset($_GET['pretty'])) {
echo str_replace("\/", "/", jsonReadable(parse($json)));
} else {
$json = str_replace("\/", "/", $json);
echo parse($json);
}

La funzione jsonReadable è da qui e la funzione di analisi è da qui . Le str_replaces che sono già in ci sono, perché io sono sempre strani tag in formato HTML come . Infine, $ nuovo è una matrice che è realizzato in precedenza. codice completo su richiesta.

Help me StackOverflow. Sei la mia unica speranza

È stato utile?

Soluzione

La stringa contiene "\ r \ n" (come in 0x0D 0x0A) o la stringa letterale '\ r \ n'? Se è la prima, questo dovrebbe eliminare eventuali nuove righe.

$json = preg_replace("!\r?\n!", "", $json);

In alternativa, sostituire il secondo parametro "" con "
", se si desidera sostituire le nuove righe con un tag br. Per quest'ultimo caso, provare quanto segue:

$json = preg_replace('!\\r?\\n!', "", $json);

Altri suggerimenti

Non sostituire nel JSON, sostituirlo nella fonte prima di codificarlo.

Ho avuto un problema simile, ho usato:

$p_num = trim($this->recp);
$p_num = str_replace("\n", "", $p_num);
$p_num = str_replace("\r", ",", $p_num);
$p_num = str_replace("\n",',', $p_num);
$p_num = rtrim($p_num, "\x00..\x1F");

Non sono sicuro se questo aiuto volontà con le vostre esigenze.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top