1
내가 같은 것을 달성 싶어 (+ 함께/strpos 시작). 여러분이 상상할 수있는 것처럼, 저는 몇몇 텍스트 입력을 듣고 있습니다.preg_match를 가진 스위치 케이스
이this is !say some text
코드 : 나의 이해에서
$prefix = "!";
switch ($message->content) {
case preg_match("/[^.*]$prefix . 'say' (.*) /", $message->content):
_say($message);
break;
}
function _say($message)
{
$parts = explode("!say", $message->content);
return $message->channel->sendMessage(trim($parts[1]), true);
}
, 정규 표현식이 올바른지 (도 regexp-tester에 확인 지금은이 같은 문자열이 또한 case
유발한다는 문제에 직면하고있어).
substr
으로 테스트되었지만 그렇게하지는 않습니다.
case substr($message->content, 0, 3) == $prefix . 'say' :
내가 뭘 잘못하고 있니?
질문은 오히려 함수 호출의 출력을 테스트 했습니까? '$ message-> content'가 기본적으로 맞다고 가정하고 있습니다. 디버깅은 프로그래밍의 열쇠입니다. – Xorifelse
글쎄, 정확한 부분을 말하지만'! say' 다음의 모든 부분은 문자열의 위치에 관계없이 – DasSaffe
아마도'substr ($ message-> content, 0, 3) == $ prefix를 사용해야합니다. 'preg_match()'대신 'say''를 사용하십시오. 이는 또한 더 긴 명령의 경우'switch' 문을 변경해야한다는 것을 의미합니다. 그러나 ... 당신은'{space} '의 첫 번째'strpos()'가 – Xorifelse