У меня есть проект pub / sub, и я хочу использовать его в своем проекте PHP, моя тема — настройка:
У меня есть скрипт php для этого, msg.php:
$file = "text.txt";
$fp = fopen($file, "w");
fwrite($fp, json_encode($_REQUEST));// tried $_POST, $_GET
fclose($fp);
Но я не могу получить данные из него, однако скрипт, кажется, выполняется (я вижу это по измененной дате в текстовом файле). Я всегда заканчиваю с [] в text.txt, не учитывается, если уведомления отправляются мной автоматически или вручную через опубликовать сообщение вариант.
Как я могу получить данные из входящих сообщений паба / подписки?
Решения, описанные в этих вопросах, не работают для меня
Google Cloud Platform Pub / Sub push пустые данные POST
Google Cloud Pub / Sub Push-сообщения — пустое сообщение
Под этим я подразумеваю замену
fwrite($fp, json_encode($_REQUEST));
с
fwrite(json_decode(file_get_contents('php://input')_);
fwrite(json_decode($HTTP_RAW_POST_DATA));
Функция json_encode в PHP будет выводить эту открывающую и закрывающую скобку «[]», когда ей дан пустой массив. Есть 2 основные возможности, которые могут возникнуть.
Я рекомендую использовать функцию, подобную следующей, чтобы вывести все переменные и параметры среды, чтобы увидеть, поступают ли ожидаемые данные в PHP вообще:
function PHPInfo2File($target_file) {
ob_start();
phpinfo();
$info = ob_get_contents();
ob_end_clean();
$fp = fopen($target_file, "w+");
fwrite($fp, $info);
fclose($fp);
}
Если PHP не получает данные, проблема должна быть на уровне pubsub.
Других решений пока нет …