PHP - 从自定义行结尾的文件中获取随机行

时间:2014-10-04 02:16:17

标签: php

我正在尝试将随机行从文件保存到变量($ fortune),这部分很容易。我遇到麻烦的部分是“线”可以是多行。每行将以\ n%结尾(输入键加%)。我如何得到变量?该文件的一个示例如下:

  

“iptables http://en.wikipedia.org/wiki/Iptables上有一个wiki,不要乱用iptables - 这真的很棘手”

     

2007年3月15日Husse

     

     

“Ubuntu开发人员已经做了很多工作   在GUI环境中使sudo尽可能平滑,他们已经   做得很好。通过重新启用root用户甚至登录   作为根,你真的把他们的工作扔出窗外,拿走你的   安全带关闭,正面开车进入交通。是的,有点儿   疯..“

     

Husse Mar 2007年10月

     

(它会选择“%”之前的所有内容)

2 个答案:

答案 0 :(得分:1)

尝试:

$array = explode("\n%\n", $text);

print_r($array);

或者:

$array = array_map('trim', explode("%", $text));

print_r($array);

其中$text是您从文件中读取的字符串。

答案 1 :(得分:0)

您是否考虑使用正则表达式来捕捉所有这些?

相当分块,但这就是我得到的:

php > preg_match("/%(.*?)%/s", $str, $arr);
php > print_r($arr);
Array
(
    [0] => %
my fortune is quite the ugly one

litterally
%
    [1] => 
my fortune is quite the ugly one

litterally

)

它不是最理想的regualr表达,我基本上从这里获取灵感:Regex, get string value between two characters

但它应该让你开始!