Я работал над этой проблемой в течение нескольких часов, но я не мог понять, почему empty () в, если оператор не работает, как я ожидал.
fetch. php
header('Content-Type: application/json');
function fetchApi($param1){
$apiKey="SOME TEXT WHICH I WILL NOT POST HERE";
$curl = curl_init();
if(empty($param1)){
$body = json_decode(file_get_contents('php://input'), true);
$bodyObject = (object) $body;
if($bodyObject->target=="main"){
$bodyObject->link = $bodyObject->link . "random?number=4".$apiKey;
curl_setopt($curl, CURLOPT_URL, $bodyObject->link);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
echo $output;
}
}else{
echo $param1;
}
curl_close($curl);
}
fetchApi('');
это мой код fetch. php, мне нужно запустить fetchApi в двух разных ситуациях. Первая ситуация - когда загружен индекс. html. Javascript автоматически выберет для извлечения. php и запустит функцию fetchApi с пустой строкой в качестве параметра. Протестировали сотни раз, и все работает нормально.
Но проблема в том, что мне нужно запустить эту функцию в поиске. php, когда пользователь что-то ищет.
форма в индексе. html
<form action="search.php" method="GET">
<label for="check">ingradients</label><input id="check"type="checkbox"/>
<input type="text" name="search" placeholder="SEARCH"/>
</form>
search. php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<?php
$searchId = $_GET["search"];
include ('fetch.php');
fetchApi($searchId);
?>
</body>
</html>
, как вы можете видеть, в поиске. php Я включаю fetch. php и вызывает функцию fetchApi с аргументом $ _GET ["search"], но я получаю эту ошибку, когда что-то ищу.
Примечание: неопределенное свойство: stdClass :: $ target в C: \ xampp \ htdocs \ spoonacular \ fetch. php on line 16
Я не могу понять, почему php показывает такую ошибку. Я передал аргумент, он не пустой, почему php все еще запускает алгоритмы внутри if (empty ($ param1)) {}? Я пробовал if ($ param1 == '') {}, но это тоже не работает.
Как это сделать, если я хочу полностью игнорировать все внутри if (empty ($ param1)), если параметр функции не является пустой строкой или NULL?