Slash Problem mit Funktionen json_encode. Warum und wie es zu lösen?
Warum die Ausgabe dieses Datum ("2011/7/11")
mit json_encode
zeigt ("2011\/7\/11")
?
Wie kann ich umwandeln "2011\/7\/11"
zu "2011/7/11"
?
$data_go = '2011/7/11';
$ddmmyyy='([1-9][\d]{3})[- \/.]([0-1][\d])[- \/.]([0-3][\d])';
if(preg_match("/$ddmmyyy$/", $data_go)) {
$year = substr($data_go,0,4);
$month = substr($data_go,5,2);
$day = substr($data_go,8,2);
$j2g = $this->convert_date->JalaliToGregorian($year, $month, $day);
$ok = $j2g[0]."/".$j2g[1]."/".$j2g[2];
}else {
return FALSE;
}
echo json_encode($ok); //output "2011\/7\/11"
"2011\/7\/11"
ist gültiges JSON-string... alle /
müssen escaped werden durch das voranstellen \A: was kann ich tun?wie ist es?
was planen Sie zu tun mit der Leistung? warum nicht
echo $ok;
?2011/7/11-> entfernt backslash. warum die Funktionen json_encode nicht kann entfernt backslash?
Mit einem umgekehrten Schrägstrich gibt gültiges JSON.
InformationsquelleAutor Me hdi | 2011-07-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
In PHP 5.4, die Sie verwenden können
JSON_UNESCAPED_SLASHES
:Anders, Sie haben zu tun einige triviale Nachbearbeitung
Beachten Sie, dass
\/
ist eine gültige Art und Weise zu repräsentieren/
im JSON-Format.PHP verwendet historische Logik, die magic_quotes_gpc in der Vergangenheit. Nämlich, es versucht zu tun, half-assed-Codierung zu vermeiden, die meisten einfache Angriffe aufgrund fehlender Codierung. In diesem Fall, der Grund ist es, web-dev code
"<script>".json_encode($whatever)."</script>"
wo $, was immer auch Tatsächliches"</script>"
irgendwo. Optionale Kodierung des slashes konvertiert"</script>"
in"<\/script>"
vermeidet das problem der Interpretation rest der string als raw-HTML.InformationsquelleAutor Artefacto
es wird entfernen Sie alle vorwärts-Schrägstriche und geben Ihnen das gewünschte Ergebnis zu erhalten.
es gibt eine fehlende Apostroph nach dem flüchtigen ein. Diese Linie sollte
$data_go = str_replace('\'','', $data_go);
Dieser code ist einfach relacing einfache Anführungszeichen mit nichts. Artefacto es richtig.
InformationsquelleAutor Rukmi Patel