Para el primer punto, si trato de hacer esto:
$str = "this / string";
var_dump(json_encode($str));
obtengo:
string '"this \/ string"' (length=16)
Con barras invertidas también.
Mirando json.org
, parece que el estándar JSON define que las barras, dentro de las cadenas, se deben escapar.
Entonces, json_encode()
parece estar haciendo lo correcto.
Si no desea que se escapen esas barras, entonces no desea un JSON válido y no debería funcionar con json_encode
.
Para el segundo punto, ahora, no debes usar esto:
$posts[] = array(..., $posts2 );
En su lugar, debe utilizar:
$posts[] = array(..., 'attach' => $posts2 );
De esta manera, ese último elemento de la matriz tendrá el nombre 'adjuntar'.