Как вставить переменную php в тело запроса json

301
17 июня 2017, 14:21

Вопрос - как вставить переменную php в тело запроса json?

public function sender() {
    $this->load->model('novaPoshta/novaPoshta');
    $api_key = $this->model_novaPoshta_novaPoshta->get_api();
    $key = ($api_key['api_key']);
    $json = '{
        "apiKey":" $key" ,
        "modelName": "Counterparty",
        "calledMethod": "getCounterparties",
        "methodProperties": {
            "CounterpartyProperty": "Sender",
            "Page": "1"
        }
    }';
    $sender = $this->sendRequest($json);
    return $sender;
} 

Таким образом получаю ошибку. Если вставить ключ, то все работает

Answer 1

Конечно, в одинарных кавычках нельзя ставить переменные. В в двойных придется экранировать кавычки в теле запроса, потому проще сделать через конкатенацию.

public function sender(){
    $this->load->model('novaPoshta/novaPoshta');
    $api_key = $this->model_novaPoshta_novaPoshta->get_api();
    $key = ($api_key['api_key']);
    $json = '{
                "apiKey":" ' . $key . '" ,
                "modelName": "Counterparty",
                "calledMethod": "getCounterparties",
                "methodProperties": {
                    "CounterpartyProperty": "Sender",
                    "Page": "1"
                }
            }';
    $sender = $this->sendRequest($json);
    return $sender;
} 
Answer 2

Как вставить переменную php в тело запроса json

public function sender(){
    $this->load->model('novaPoshta/novaPoshta');
    $api_key = $this->model_novaPoshta_novaPoshta->get_api();
    $json = array(
        'apiKey'=>$api_key['api_key'],
        'modelName'=>'Counterparty',
        'calledMethod'=>'getCounterparties',
        'methodProperties'=>array(
            'CounterpartyProperty'=>'Sender',
            'Page'=>1
        )
    );
    return $this->sendRequest(json_encode($json));
} 
READ ALSO
Звездочки в input type=“text”

Звездочки в input type=“text”

Добрый день, как сделать, чтобы в поле input type="text" (не password, именно text) введённые символы заменялись на звездочки, но потом передавать введенное...

586
Bitrix замена %2F

Bitrix замена %2F

Кто подскажет где искать, что бы заменить %2F в url на дефис ? cms bitrix, если пройти по ссылке http://domisadua/catalog/plitkorezy/filter/diametr_disk-is-400/dry_wet_swaing-is-%D0%BD%D0%B5%D1%82+%2F+%D0%B5%D1%81%D1%82%D1%8C/apply/...

407
Получение объекта DateTime:: из strtotime

Получение объекта DateTime:: из strtotime

Доброго времени сутокИмеется метка времени Unix $dt

247
Ошибка с API Новой почты “::findArea() must be of the type array ”

Ошибка с API Новой почты “::findArea() must be of the type array ”

Здравствуйте используя APi новой почты для bitrix, после переноса сайта на новый хостинг появилась ошибка,

218