我正在使用 PHP 制作一个 Telegram 机器人。我有 bot.php、filter.php 和 test.php。
我希望我的机器人向用户发送一条包含 ID 的消息。我有一个 Filter 类,并且我的 filter.php 中有一个带有正则表达式模式的函数来检测此 id,并且我正在使用 preg_match 来获取匹配项。
public function getID($string) {
$pattern = "/e0(\d){6}\b/i";
preg_match($pattern, $string, $matches);
return $matches[0];
}
在我的 test.php 中,我使用该函数,它能够向我回显匹配项。
<?php
include __DIR__ . './filter.php';
$check = new Filter();
$pattern = "/e0(\d){6}\b/i";
$text = "hi e0000000";
echo "id: ".$check->getID($text);
?>
在我的 bot.php 中,我尝试使用相同的函数发送消息,但它不起作用。(sendMsg 函数只是对 Telegram Bot API 的简单curl http 请求)
include __DIR__ . './filter.php';
$filter = new Filter();
function handleGoodMessage($chatId, $text) {
$report = "Message '".$text."' passed the filters.\nID: ".$filter->getID($text);
sendMsg($chatId, $report);
}
相反,每当调用该函数时,机器人都会返回 500 内部服务器错误。
请帮忙。
慕的地6264312