Результаты поиска
CURLOPT_POSTFIELDS.function getSensorsInfoFromApi($search_query) {
$api_url = "https://control.mail.com/nosy/save_form.php";
// Данные для отправки
$post_data = ['search-query' => $search_query];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Указываем, что это POST запрос
curl_setopt($ch, CURLOPT_POST, true);
// Передаем массив с данными
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 9);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_code == 200 && $response) {
return json_decode($response, true);
}
return null;
}
- URL: Теперь он «чистый», без знака вопроса и параметров.
- CURLOPT_POST: Активирует метод POST.
- CURLOPT_POSTFIELDS: Здесь мы передаем сами данные. Функция
http_build_queryпреобразует массив в строку видаparam=value&..., что является стандартом для обычных форм.
['http_code'] => $http_code. // Возвращаем тестовые данные если API недоступен
return [
['name' => 'Пример датчика 1', 'description' => 'Технические характеристики датчика...', 'quantity' => 1],
['name' => 'Пример датчика 2', 'description' => 'Дополнительные параметры...', 'quantity' => 2],
'http_code' => $http_code // Убрал лишние квадратные скобки вокруг ключа
];
- Ошибка синтаксиса:
['http_code']— это создание нового массива. PHP ожидал здесь либо строку'http_code', либо переменную. - Логика: В таком виде массив будет "смешанным" (два элемента со списком датчиков и один элемент с кодом ответа). Если ваш скрипт, который вызывает эту функцию, ожидает только список датчиков, он может сломаться при попытке обработать
http_codeкак датчик.
error_reporting(E_ALL); ini_set('display_errors', 1); в начало файла.$http_code возвращает 200, но вы всё равно видите демонстрационный массив, значит, условие if ($http_code == 200 && $response) не срабатывает до конца.$response. Вот основные причины:if ($response) вернет false, и скрипт проскочит к тестовым данным.- Как проверить: Добавьте
var_dump($response);перед условием.
json_decodejson_decode срабатывает, он может вернуть null (если JSON невалидный). В вашем коде нет проверки результата декодирования. Если $data внутри if окажется пустой, функция может ничего не вернуть (или вернуть null), и вы увидите пустоту или ошибку дальше по коду. $response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_error($ch); // Получаем текст ошибки CURL, если она есть
curl_close($ch);
// Проверяем: код 200 И ответ не пустой
if ($http_code == 200 && !empty($response)) {
$data = json_decode($response, true);
// Проверяем, что JSON успешно расшифрован и это массив
if (json_last_error() === JSON_ERROR_NONE && is_array($data)) {
return $data;
}
}
// Если мы здесь, значит что-то пошло не так.
// Добавим реальную информацию в отладку:
return [
['name' => 'Ошибка API', 'description' => 'Код: ' . $http_code . ' | CURL: ' . $curl_error, 'quantity' => 0],
'debug_raw_response' => $response, // Посмотрим, что реально пришло
'http_code' => $http_code
];
debug_raw_response. Если там пусто, значит сервер mail.com почему-то не отдает данные на ваш POST-запрос. Возможно, ему нужен заголовок Content-Type: application/x-www-form-urlencoded.Turn on your Visual Search History?
Google uses its visual recognition technologies to process the images you use to search, like when you search with Google Lens. If you turn on your Visual Search History, Google will save these images from eligible Google services to your Web & App Activity when you’re signed in to your Google Account. You can learn more about this setting and which Google services save images to it at g.co/Search/VisualSearchHistory.
How visual search history is used
Your Visual Search History may be used to improve your experience on Google services, like letting you revisit your past visual searches. It may be used to develop and improve Google’s visual recognition and search technologies, as well as the Google services that use them.
When visual search history is off
If you turn this setting off, any previous Visual Search History may still be kept and used to improve Google’s visual recognition and search technologies, unless you delete it from your Web & App Activity.
Visual Search History doesn’t affect images saved by other settings, like Gemini Apps Activity.
How to manage your Visual Search History
You can view, delete, or manage your Visual Search History at activity.google.com. To download your Visual Search History, visit takeout.google.com. Images will be deleted in accordance with your Web & App Activity auto-delete settings, although some types of images may be deleted sooner.
Google uses and saves data in accordance with Google Privacy Policy.
