'規則緩衝清除', 'Starting replication'=>'開始規則', 'Wait -> Brk'=>'鏡像狀態改變,由等待到停止狀態', 'OK -> Wait'=>'鏡像狀態改變,由OK到等待狀態',);$logs = sd_get_log_sys_by_uuid(uuid);for($i=0; $i<$count(logs); $i++) { if($lang_Log[$logs[$i]]){ echo $lang_Log[$logs[$i]]; }else{ foreach ($lang_Log as $k=> $v) { $pos = strpos($logs[$i], $k); if($pos !== false){ echo $v; break; } } }}?>
我想做的就是遍曆數組尋找數組元素是否存在與當前字串,如果不存在就輸出當前字串,如果存在,則輸出數組的索引值。
就是翻譯功能。
1.判斷日誌在數組中是否有對應中文(因為日誌有的是死的).
2.判斷日誌部分字串是否有對應的中文(有的日誌是包含了變數的語句,所以需要用部分字串匹配,然後翻譯).
3.因為外層有個logs數組的迴圈語句,所以用break,不用exit.
回複內容:
'規則緩衝清除', 'Starting replication'=>'開始規則', 'Wait -> Brk'=>'鏡像狀態改變,由等待到停止狀態', 'OK -> Wait'=>'鏡像狀態改變,由OK到等待狀態',);$logs = sd_get_log_sys_by_uuid(uuid);for($i=0; $i<$count(logs); $i++) { if($lang_Log[$logs[$i]]){ echo $lang_Log[$logs[$i]]; }else{ foreach ($lang_Log as $k=> $v) { $pos = strpos($logs[$i], $k); if($pos !== false){ echo $v; break; } } }}?>
我想做的就是遍曆數組尋找數組元素是否存在與當前字串,如果不存在就輸出當前字串,如果存在,則輸出數組的索引值。
就是翻譯功能。
1.判斷日誌在數組中是否有對應中文(因為日誌有的是死的).
2.判斷日誌部分字串是否有對應的中文(有的日誌是包含了變數的語句,所以需要用部分字串匹配,然後翻譯).
3.因為外層有個logs數組的迴圈語句,所以用break,不用exit.
為什麼不走else呢?
你迴圈每一個詞,迴圈第一個是rep-cache during mirror is cleard,
存在於$s裡嗎?
不存在
走不走else?
走
運不運行exit;?
運行
還繼不繼續執行?
不繼續
後面的詞還檢查嗎?
不檢查
foreach ($lang_Log as $k=> $v) { $pos = strpos($s, $k); if($pos !== false){ echo $v; break; }}
$s = "mirror return 0, peer 94, bytes recv [En/De] [2005667596/2005667596 = 100]";
foreach ($lang_Log as $k=> $v) {
$pos = strpos($s, $k);if($pos !== false){ echo 'value = ' . $v . "
;}else{ echo 'key = ' . $k . "
;}
}