2016-12-09 10 views
0

In Datei A erhaltenVerwenden php curl return Json

<?php 
    $json['message'] = 123; 
    return json_encode($json); 
?> 

Wenn er gestartet wird Datei A in Browser, erwarte ich, werde ich eine zurück json Array von Datei, B, aber ich kann nur sehen, dass es "NULL" angezeigt wird. Eigentlich stimmt was nicht damit? Vielen Dank.

+3

Ersetzen 'return' mit' echo'. Erwähne es nicht. –

+0

Echo funktioniert. Aber eigentlich ist es mein Ziel, etwas in Datei A und Echo in Datei A zurückzusenden. Ist das möglich? danke – user3836484

+0

Lesen Sie mein asnwer bitte. –

Antwort

2

Curl übernimmt die Ausgabe eines Skripts. So Sie Skript soll Ausgang (print, echo) etwas:

<?php 
    $json['message'] = 123; 
    echo json_encode($json); // not return 
?> 

Wenn Ihre fileA mit einiger Ajax-Anforderung verbunden ist, dann sollten Sie die Kommunikation zwischen Client und Server verstehen wird über strings ausgeführt, ebenen einfach strings. So

wenn fileA.php Ausgänge etwas, das kein richtig ist codiert json string, dann können Sie diese Ausgabe als json behandeln. Und als Ergebnis kann output.message Notation in Javascript nicht verwenden. So sollte Ihr Skript zurückgeben richtig codiert json string (die bereits von fileB erstellt wird):

<?php 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://adomain.com/test.php"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POST, true); 
    $result = curl_exec($ch); 
    echo $result; // here, response from fileB which is already json 
    curl_close($ch); 
?> 
+0

Ich benutzte jquery $ .post (als Datei A), um etwas in Datei B zu posten und einen json_encode ($ json) zurück in Datei A zu bringen. In Datei A kann ich selektiv echo output.message (statt der ganzen langen json). Also, Curl kann diesen Effekt nicht erreichen, bin ich richtig? danke – user3836484

+0

Welchen Effekt? Warum zeigen Sie etwas php Code und erzählen dann über jquery? –

+0

$ .post ('/ process.php', {subscribe: $ ('# subscribe'). Val(), Token: '0ade9837ac2e81912468745f980fa19d'}, Funktion (Ausgabe) { if (! Output.result) { $ ('#' + output.class_name) .addClass ('error'). Next ('. Error-msg') .html (output.error_msg) .css ('display', 'block') ;; } }, 'json'); – user3836484