Хранить функцию php в переменной - PullRequest
0 голосов
/ 11 декабря 2011

Я работаю над созданием ключей API с помощью php. Я получил немного, но я хочу сохранить функцию в переменной. Но вместо этого это эхо все время. Я хочу, чтобы функция была сохранена в переменной, и когда переменная отображается, ее функция должна отображаться. Мои коды:

Клиент:

function get_cat($id){
    // Initialising authorisation to access api keys        
    $ch = curl_init("http://localhost/api/category.php?id=".$id);
    curl_setopt($ch, CURLOPT_COOKIE, "log=".$_SESSION['log']);
    // Executing script to set login session
    curl_exec($ch);
    // Closing curl connection session
    curl_close($ch);
}

Сервер:

    // Fetching data from database
    $query = mysql_query("SELECT * FROM cat WHERE id={$id}", $con) or die("Sorry Cannot Connect: ".mysql_error());
    echo json_encode(mysql_fetch_assoc($query));

Клиент:

$api = new API('test', 'test');
$res = $api->get_cat(2);

Теперь, даже если я назначу функцию в переменной $res, она откроется. Есть ли способ остановить это? Потому что я хочу, чтобы пользователи хранили функцию в переменной и использовали эту переменную для отображения содержимого внутри нее в любом месте.

1 Ответ

1 голос
/ 11 декабря 2011

По умолчанию curl добавит содержимое в стандартный вывод, например, буфер страницы выдает запрос на возврат из curl_exec.

Попробуйте это:

function get_cat($id){
    // Initialising authorisation to access api keys        
    $ch = curl_init("http://localhost/api/category.php?id=".$id);
    curl_setopt($ch, CURLOPT_COOKIE, "log=".$_SESSION['log']);
    curl_setopt($ch, CURLOPT_HEADER, 0); //2 Not inc the http headers
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    // Executing script to set login session
    $html = curl_exec($ch);
    // Closing curl connection session
    curl_close($ch);
    return $html;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...