我试图匹配字符串,但它会进入最后一个其他循环。你能帮忙吗?
$cstg = "<result>True<\/result>";
if (preg_match("/<result>True<\/result>/", $cstg)) {
echo "result success";
}
else if (preg_match("/\<result\>False\<\/result\>/", $cstg)) {
echo "result fail";
}
else {
echo "Something went wrong.";
}
答案 0 :(得分:4)
问题来自您的$cstg
字符串。你不必在html文本中逃脱\。所以下面的代码工作正常:
$cstg = "<result>True</result>";
if( preg_match("/<result>True<\/result>/", $cstg)){
echo "result success";
}
elseif (preg_match("/\<result\>False\<\/result\>/", $cstg)){
echo "result fail";
}else{
echo "Something went wrong.";
}
答案 1 :(得分:2)
$cstg ="<result>True</result>";
$find="<result>False<\/result>";
if( preg_match("/$find/", $cstg)){
echo "result success";
}
elseif (preg_match("/$find/", $cstg)){
echo "result fail";
}else{
echo "Something went wrong.";
}
答案 2 :(得分:0)
定义'/'
时,您无需转义$cstg
。当我从$cstg
中删除转义时,您的示例正确运行。另外需要指出的是,您不需要在<
中转义>
和prce_match()
。这段代码适合我:
<?php
$cstg = "<result>True</result>";
if (preg_match("/<result>True<\/result>/", $cstg))
{
echo "result success";
}
elseif (preg_match("/<result>False<\/result>/", $cstg))
{
echo "result fail";
}
else
{
echo "Something went wrong.";
}
您可以看到您将文字'\'
放入$cstg
,如下所示:
<?php
$cstg = "<result>True<\/result>";
echo $cstg;
输出:
<result>True<\/result>