Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 匹配字符_Php_Regex_Arrays_String - Fatal编程技术网

Php 匹配字符

Php 匹配字符,php,regex,arrays,string,Php,Regex,Arrays,String,我在$output中有以下字符串: attack-responses.rules attack-responses_IPS.rules backdoor.rules backdoor_IPS.rules 我想把它放在$array中: $array[0]=attack-responses.rules $array[1]=attack-responses_IPS.rules $array[2]=backdoor.rules 我的意思是,当它到达.rules类似于*.rules的方法时,它必须得

我在$output中有以下字符串:

attack-responses.rules attack-responses_IPS.rules backdoor.rules backdoor_IPS.rules 
我想把它放在$array中:

$array[0]=attack-responses.rules
$array[1]=attack-responses_IPS.rules
$array[2]=backdoor.rules
我的意思是,当它到达.rules类似于*.rules的方法时,它必须得到子字符串

我不知道如何使用正则表达式或其他解决方案来实现它

提前感谢

一次简单的爆炸就可以了

$array=explode(' ', $output);
如果允许单词之间有多个空格,则使用包含空格或\s+的正则表达式对$output调用preg_split函数

增编:

一个很好的方法来尝试这些事情,你可能已经知道它是

在中键入以下内容并点击运行代码链接:

$output = "attack-responses.rules attack-responses_IPS.rules backdoor.rules backdoor_IPS.rules";

$array = preg_split("/ /", $output);

echo "${array[0]}<br />";
echo "${array[1]}<br />";
echo "${array[2]}<br />";

这个版本只使用了一个简单的空间作为拆分器。

我很困惑是的,你的可以,但我有这个$output=shell_exec'ls/srv/www/htdocs/didebansnort/core/snort/rules';当我得到$output时,它无论如何都不会显示它。我接受你的感谢这是换行符,请尝试分解\n,$output而不是分解“”,$outputMy fault,shell_exec将输出作为字符串返回,因此我的原始答案应该可以工作。要找到分隔符,您可以遍历字符串并为每个charI不知道的ideone.com输出ord。很好。@Negin:看看如何迭代字符串,它以数组[0]的形式输出整个字符串