我在remote SSH
中连接到Php
设备。
我运行command
输出太长。
所以我搜索并了解我可以通过以下方式保存它:
$my_array= explode("\n", $this->ssh->exec('some command'));
没问题,现在我可以通过以下方式显示整个输出:
echo print_r($my_array);
输出类似于:
Array ( [0] => ath4_auth_mode=disabled [1] => wl_mac_deny= [2] => filter_dport_grp3= [3] => ses_script= [4] => http_redirect_port=3128 [5] => oet5_en=0 [6] => filter_dport_grp4= [7] => oet2_fragment=0 [8] =>
当我跑步时:
echo count($my_array);
它显示我:
2200
所以这是真的,现在我想搜索像name=
这样的特定文本,我希望数组中的值相等,我试过这个:
$search_result = array_search("name=", $my_array);
但是没有机会,甚至尝试过:
foreach($my_array as $cat) {
$cat = trim($cat);
if($cat == "name=") {
echo "hoola !";
} else {
echo ':-(';
}
再次没有机会,如何搜索name=
并获取=
之后的值?
答案 0 :(得分:0)
我认为你的数组值不是name=
。例如,它可以是name=something
。在这种情况下,==
和in_array
都不会找到它。您需要使用strpos
:
foreach($my_array as $cat) {
$cat = trim($cat);
if(strpos($cat, "name=") === 0) {
echo "hoola !", $cat;
// add a break if value found so as not to search other elements
break;
} else {
echo ':-(';
}
}
我使用了===
和0
,因为name=
必须位于$cat
的开头。