<code><?php
$lang_Log=array(
'rep-cache during mirror is cleard'=>'规则缓冲清除',
'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;
}
}
}
}
?>
</code>我想做的就是遍历数组查找数组元素是否存在与当前字符串,如果不存在就输出当前字符串,如果存在,则输出数组的键值。
就是翻译功能。
1.判断日志在数组中是否有对应中文(因为日志有的是死的).
2.判断日志部分字符串是否有对应的中文(有的日志是包含了变量的语句,所以需要用部分字符串匹配,然后翻译).
3.因为外层有个logs数组的循环语句,所以用break,不用exit.
<code><?php
$lang_Log=array(
'rep-cache during mirror is cleard'=>'规则缓冲清除',
'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;
}
}
}
}
?>
</code>我想做的就是遍历数组查找数组元素是否存在与当前字符串,如果不存在就输出当前字符串,如果存在,则输出数组的键值。
就是翻译功能。
1.判断日志在数组中是否有对应中文(因为日志有的是死的).
2.判断日志部分字符串是否有对应的中文(有的日志是包含了变量的语句,所以需要用部分字符串匹配,然后翻译).
3.因为外层有个logs数组的循环语句,所以用break,不用exit.
为什么不走else呢?
你循环每一个词,循环第一个是rep-cache during mirror is cleard,
存在于$s里吗?不存在
走不走else?走
运不运行exit;?运行
还继不继续执行?不继续
后面的词还检查吗?不检查
立即学习“PHP免费学习笔记(深入)”;
<code>foreach ($lang_Log as $k=> $v) {
$pos = strpos($s, $k);
if($pos !== false){
echo $v;
break;
}
}
</code>
$s = "mirror return 0, peer 94, bytes recv [En/De] [2005667596/2005667596 = 100]";
foreach ($lang_Log as $k=> $v) {
<code>$pos = strpos($s, $k);
if($pos !== false){
echo 'value = ' . $v . "<br/>;
}else{
echo 'key = ' . $k . "<br/>;
}</code>}
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号