Per il primo punto, se provo a fare questo :
$str = "this / string";
var_dump(json_encode($str));
Ottengo :
string '"this \/ string"' (length=16)
Anche con barre rovesciate.
Guardando json.org
, sembra che lo standard JSON definisca che gli slash, all'interno delle stringhe, devono essere sottoposti a escape.
Quindi, json_encode()
sembra che stia facendo la cosa giusta.
Se non si desidera eseguire l'escape di quelle barre, non si desidera un JSON valido e non dovrebbe funzionare con json_encode
.
Per il secondo punto, ora, non dovresti usare questo :
$posts[] = array(..., $posts2 );
Invece, dovresti usare :
$posts[] = array(..., 'attach' => $posts2 );
In questo modo, l'ultimo elemento dell'array avrà il nome 'attach'.