爲什麼不能正常工作?PHP獲取括號標記之間的字符串
<?php
function GetBetween($var1="",$var2="",$pool) {
$temp1 = strpos($pool,$var1)+strlen($var1);
$result = substr($pool,$temp1,strlen($pool));
$dd=strpos($result,$var2);
if($dd == 0) {
$dd = strlen($result);
}
return substr($result,0,$dd);
}
$str = "[id]159828[/id][name][/name]";
$str = GetBetween("[name]","[/name]",$str);
echo $str;
?>
返回:
如果有東西在裏面[/name]
工作正常。如果找不到它,我需要它返回任何東西。
謝謝!
如果這些字段之間沒有任何內容,'$ dd'首先等於0,然後更改爲結果的長度。這使得你最終調用'substr($ result,0,7)'。如果在名稱括號之間有一個值'$ dd'永遠不會設置爲0,並且次要分配不會發生。擺脫'if($ dd == 0)...'塊。 – Mike
如果'$ pool'是'GetBetween()'的必需參數,則不需要爲'$ var1'和'$ var2'設置默認值。如果您想讓其他選項可用,請將'$ pool'作爲第一個參數。 – ironcito