2015-03-06 2 views
0

Im работает над этим API DUDAMOBILE. Пользовательская интеграция на веб-сайте PHP. сначала он получает URL от клиента.Назначение значений PHP внутри JSON Array

$url = $_POST["url"] 

и я хочу, чтобы назначить этот адрес в поле ниже код

$data = ' 
     { 
     "site_data": 
      {    
       "original_site_url":"http://www.test.com/" 
      } 
     } 
    '; 

, но не знаете, как присвоить его выше код. Я так пробовал. но он не работает

$data = ' 
     { 
     "site_data": 
      {    
       "original_site_url":'.$url.' 
      } 
     } 
    '; 

им получать эту ошибку Failed to parse JSON: Unexpected character ('h' (code 104))

+2

NO! не создавайте строку json вручную, используйте json encode, поэтому это существует – Ghost

ответ

1

Вы должны кавычки вокруг значения, а также, в противном случае он не действует JSON строка:

$data = ' 
     { 
     "site_data": 
      {    
       "original_site_url":"'.$url.'" 
      } 
     } 
    '; 

Ошибка в том, что анализатор ожидает двойные кавычки и находит «з» самого начало URL (http ....).

+0

Да. это сработало. –

+0

Хотя ответ kylehyde215 более чист. Если ответ работает на вас, и вы думаете, что он решает вашу проблему, вы должны отметить ее принятую. – Chris

4

Это из-за косой черты в URL. Лучше использовать json_encode, а не пытаться форматировать json вручную.

$data = ['site_data' => ['original_site_url' => $url]]; 
$json = json_encode($data); // json_encode($data, JSON_PRETTY_PRINT) to keep formatting. 
+0

ah right. это код, который они мне дали для загрузки в качестве API. поэтому я не пытался его сильно изменить –

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