2013-08-26 105 views
0

在下面的代碼中,在preg_match,$videoinfo['video']['rendering']之後絕對等於「漸進」。與php變量問題混淆

所以,我期待最後的回聲輸出「渲染:逐行掃描」。

但是,它沒有。它輸出「渲染:漸進式」我在這裏丟失了一些明顯的東西嗎?

感謝您的幫助!

if(preg_match("/^Video Field Order\s+:(.*)$/im",$output,$matches)){ 
    $videoinfo['video']['rendering'] = $matches[1]; 
    if($videoinfo['video']['rendering'] == "Progressive"){    
     $videoinfo['video']['rendering'] = 'Progressive Scan';      
    }    
    echo("Rendering: " . $videoinfo['video']['rendering']); 
} 
+2

您確定該字符串中沒有任何尾隨空格嗎?嘗試'trim($ matches [1]);' – h2ooooooo

+1

這意味着條件不是「真」,這意味着該字符串實際上並不是「漸進式」。可能有一些額外的尾隨空白左右。 – deceze

+1

可能在「Progressive」之前或之後有額外的空間 – 2013-08-26 06:57:14

回答

3

你這樣做

echo("Rendering: " . $videoinfo['video']['rendering']); 

,你說,它輸出 「渲染:漸進」

這意味着$videoinfo['video']['rendering']包含字符串Progressive.。 注意點!

所以它有1個額外的字符(點),這就是爲什麼你的等於不起作用。

+0

好的。那裏不應該有那個點。對不起,這個混亂。編輯。 – CRAIG