<?php
$string =
'--os
windows,linux
--os
Mac,Linux
--os
Mac,windows
';
$str__len = strlen('--os');
$strr_pos = strrpos($string,'--os') + $str__len;
$subb_str = substr($string,$strr_pos,100000);
echo $subb_str;
/*
OUTPUT
Mac,windows
*/
?>
但如何获得中心和第一个操作系统(Mac,Linux)和(Windows,Linux)? 我的想法不多但它很愚蠢而且很慢!
注意: $ string varibale包含大数据! 它只包含三个--os标签 但每个--os标签包含约1000行! 所以,我希望获得专业代码以避免减速!
谢谢
答案 0 :(得分:1)
如果我理解你的问题,你想要将'--os'
子串之间的字符串分开。您可以使用explode()
函数轻松完成此操作:
$string =
'--os
windows,linux
--os
Mac,Linux
--os
Mac,windows
';
$arr=explode('--os\n',$string)
//"\n" is the newline character.
//The elements are now '','windows,linux','Mac,linux','Mac,windows'.
//Array of the operating systems that we want:
$operating_systems=array();
//Loop through $arr:
foreach($arr as $x)
{
if($x!='') //Ignore the silly '' element.
{
$sub_arr=explode(",",$x); //Make a new sub-array.
//so, if $x='windows,linux',
//then $sub_arr has the elements "windows" and "linux".
foreach($sub_arr as $i)
{
array_push($operating_systems,$i); //put these OS names into our array.
}
}
}