2015-01-17 93 views
0

我一直在試圖取出從PHP中的字符串一定的價值,但沒有得到成功,所以如果你的人可以請看看我的代碼爲:在php中while循環沒有輸出?

$html = "[ect]afdbec[ect]"; 
$output =true; 
$x=1; 

while ($output == true) { 
$pos = strpos($html,"["); 
$value = substr($html,$pos,$x); 
echo $value; 
$x++; 
if ($value == "]") { $output = false; } 
} 

回答

1

將行$pos = strpos($html,"[");放在while的循環之外。因爲它在循環的每次迭代中將$pos的值初始化爲"["的位置。我認爲這不會解決這個問題。

請適應preg_match()。會有更簡單的方法來做到這一點。

請嘗試:

$html = "[ect]afdbec[ect]"; 
preg_match('~\[(.*?)\]~', $html, $match); 
echo $match[1]; 

請看here

+0

謝謝...它真的幫了......我在哪裏可以學習'preg_match'模式? –

2

我覺得你的問題可能是你」當$value等於「]」(在if語句中)時重新檢查,但是$ value不會只是一個字符;你問它從第一個「[」的位置總是substr()

您可能想看看preg_match()--如果您對此有所瞭解,那麼您的學習曲線會略微有些偏離,但這對未來開發中的這種情況會有所幫助。