2016-04-08 3 views
0

Я пытаюсь передать данные с ios на сервер.Json_decode возвращает строку (0) ""

Php код:

<?php 
    $inputJSON = file_get_contents('php://input'); 
    $data = json_decode($inputJSON, TRUE); 
    var_dump($data); 
?> 

Это дает мне string(0) "". Я не знаю, в чем смысл этого.

 echo $inputJSON; gives nothing 
     var_dump($inputJSON); returns string(0) "" 

Когда я распечатать JSON-строку, это дает мне действительную строку

Вы можете найти полные коды этой проблемы в другой мой вопрос

Cannot able to access json array in php , it returns null and Warning: Invalid argument supplied for foreach()

+0

Есть ли у '$ inputJSON' значения? – aldrin27

+0

echo $ inputJSON; ничего не дает var_dump ($ inputJSON); возвращает строку (0) "" – Lydia

+0

php: // ввод, это сработало раньше. – Lydia

ответ

1

С Божией Благодатью решил мой проблемно

прохода верно для преобразования объектов в ассоциативных массивы, поэтому доступ к цифровому/ассоциативному массиву, как это.

$var = $data[0]['key']; 

Затем мы используем сочетание числовых и ассоциативного массива синтаксис для доступа к нужному элементу в многомерном массиве.

Но если я пытаюсь var_dump ($ data); является retun null.

Ссылка учебник: http://www.dyn-web.com/tutorials/php-js/json/decode.php

1

Fisrt вы должны проверить ваш URL правильный или нет. Если каждая вещь правильно, но до сих пор ее не показывая использовать ответ локон функции, такие как alter native of file_get_content

2

Я создал пример для вас, что то, что я говорю: -

1.My как файл (php файл кода и json строка файла) в одной и той же рабочей directory.Check: - http://prntscr.com/apkbp9 содержимое файла

2. json строка должна быть: -

[ 
    { 
     "email" : "", 
     "Name" : "Ddd", 
     "contact2" : "", 
     "ontact1" : "" 
    }, 
    { 
     "email" : "", 
     "Name" : "Ddd", 
     "contact2" : "", 
     "contact1" : "" 
    }, 
    { 
     "email" : "", 
     "Name" : "Dddddr", 
     "contact2" : "", 
     "contact1" : "" 
    } 
] 

Проверьте здесь: - содержание http://prntscr.com/apkbx0

3. php код файла: -

<?php 
    $inputJSON = file_get_contents('input.txt'); 
    echo $inputJSON; 
    $data = json_decode($inputJSON, TRUE); 
    echo "<pre/>";print_r($data); 
?> 

Проверить здесь: - http://prntscr.com/apkc6x

Выход на моем браузере: - http://prntscr.com/apkcoi

Вы можете использовать CURL как ниже: -

<?php 
    function url_get_contents ($Url) { 
     if (!function_exists('curl_init')){ 
      die('CURL is not installed!'); 
     } 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $Url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     $output = curl_exec($ch); 
     curl_close($ch); 
     return $output; 
    } 
    $inputJSON = url_get_contents('php://input'); 
    echo $inputJSON; 
    $data = json_decode($inputJSON, TRUE); 
    echo "<pre/>";print_r($data); 

?> 

Для получения дополнительной справки о CURL: - http://php.net/manual/en/book.curl.php

Примечание: - если оба не будут работать, то сначала вам нужно сохранить ваши данные json в файле с расширением .txt, а затем вы можете использовать как код, приведенный выше, только поместив полный путь этого текстового файла.

+0

Да, я сделал то же самое, если вы прочитали мой вопрос, значит, вы можете это видеть. – Lydia

+0

от ios до php, мы не можем определить файл php file.the http, принятый как file_get_contents ('php: // input'); – Lydia

+0

Я думаю, может быть проблема в том, что я посылаю массив json, так может быть и то, что недействительно – Lydia

Смежные вопросы