2013-01-22 134 views
0

我想要例如從PHP文件中掃描此$lang['foo1']='foo2';,所以我嘗試 this,但它不起作用。使用sscanf掃描特殊字符串

$file = "../lang/lang.en.php"; 

if(file_exists($file)) { 
    $text = fopen($file, 'r+'); 
    $content = trim(file_get_contents($file, NULL, NULL, 221)); 
    $i = 0; 
    do { 
     $n = sscanf($content, "\$lang['%s']=%s;", $s1[$i], $s2[$i]); 
     echo $s1[$i].'==>'.$s2[$i]; 
     $i++; 
    } while($s1[$i]! = '' && $s2[$i] != ''); 
} 

我的問題是什麼?

回答

0

你應該只是像一個普通的PHP文件include('../lang/lang.en.php')

此外,它可能使lang.en.php返回數組直接與returnhttp://nl3.php.net/manual/en/function.return.php

+0

我想得到這個'$ s2 [0] = foo2; '和'$ s1 [0] ='foo1'' –

+0

當你想要一個整數''s2 [0]'時,你必須刪除模式中的''''。 – powtac

+0

OK Thanx我試試你的程序 –

0

我會建議你的情況使用preg_match_all()

// Match 
// $lang['PAGE_TITLE']='Meine Webseite Titel'; 

$content = file_get_contents('../lang/lang.en.php'); 
preg_match_all("~\$lang\['.+'\]\s=\s'.+';~", $content, $result); 

var_dump($result); 
+0

不要使用我的文件語言==>'$ lang ['PAGE_TITLE'] ='Meine Webseite Titel'; $ lang ['HEADER_TITLE'] ='Meine Website-Header Titel'; $ lang ['SITE_NAME'] ='Meine網站'; $ lang ['SLOGAN'] ='Mein Slogan hier'; $ lang ['HEADING'] ='位置'; $ lang ['MENU_HOME'] ='ACCUEIL';'你明白我的想法是要求像數組一樣的每一個值('MENU_HOME'=>'ACCUEIL'...); –

+0

我改變了正則表達式,因爲我看到了你的內容。 Btw ...德國人? – powtac