21,886
社区成员
发帖
与我相关
我的任务
分享
$str = <<<str
-- CPU --<br />Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz<br /><br />-- RAM --
<br />Physical Memory 0: ChannelA-
DIMM0 , Micron , 4096 MB , 00000000 , 2133 MHz<br />Physical Memory 1: ChannelB-
DIMM0 , Micron , 4096 MB , 00000000 , 2133 MHz<br /><br />-- Video --
<br />Intel(R) UHD Graphics 620<br />
str;
echo preg_replace ('/Physical Memory[\s\S]*?(\d+ MB)[\s\S]*?<br \/>/','$1<br />', $str);
结果
具体可以调整<?php
//-- CPU --<br />Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz<br /><br />-- RAM --<br />Physical Memory 0: ChannelA-DIMM0 , Micron , 4096 MB , 00000000 , 2133 MHz<br />Physical Memory 1: ChannelB-DIMM0 , Micron , 4096 MB , 00000000 , 2133 MHz<br /><br />-- Video --<br />Intel(R) UHD Graphics 620<br />
//-- CPU --<br />Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz<br /><br />-- RAM --<br />4096 MB<br />4096 MB<br /><br />-- Video --<br />Intel(R) UHD Graphics 620<br />
/*
-- CPU --<br />
Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz<br /><br />
-- RAM --<br />
Physical Memory 0: ChannelA-DIMM0 , Micron , 4096 MB , 00000000 , 2133 MHz<br />
Physical Memory 1: ChannelB-DIMM0 , Micron , 4096 MB , 00000000 , 2133 MHz<br /><br />
-- Video --<br />
Intel(R) UHD Graphics 620<br />
*/
function mohu($arr, $str) {
foreach($arr as $k => $v)
if(strstr($v, $str) !== false)
$result[] = $k;
return $result;
}
$str = '-- CPU --<br />Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz<br /><br />-- RAM --<br />Physical Memory 0: ChannelA-DIMM0 , Micron , 4096 MB , 00000000 , 2133 MHz<br />Physical Memory 1: ChannelB-DIMM0 , Micron , 4096 MB , 00000000 , 2133 MHz<br /><br />-- Video --<br />Intel(R) UHD Graphics 620<br />';
foreach(explode('<br /><br />', $str) as $k => $v1)
foreach($temp_arr = explode('<br />', $v1) as $v2) {
if(array_shift($temp_arr) == $v2 && end($temp_arr) != $v2 && empty(mohu([$v2], '-- CPU --')) ) $result[$k] .= '<br />';
if(strpos($v2, ',') !== false) {
$temp = explode(',', $v2);
$result[$k] .= trim($temp[mohu($temp, 'MB')[0]]);
} else {
$result[$k] .= $v2;
}
if(end($temp_arr) == $v2) $result[$k] .= '<br />';
}
print_r(implode('<br />', $result));