我正在尝试将随机行从文件保存到变量($ fortune),这部分很容易。我遇到麻烦的部分是“线”可以是多行。每行将以\ n%结尾(输入键加%)。我如何得到变量?该文件的一个示例如下:
“iptables http://en.wikipedia.org/wiki/Iptables上有一个wiki,不要乱用iptables - 这真的很棘手”
2007年3月15日Husse
%
“Ubuntu开发人员已经做了很多工作 在GUI环境中使sudo尽可能平滑,他们已经 做得很好。通过重新启用root用户甚至登录 作为根,你真的把他们的工作扔出窗外,拿走你的 安全带关闭,正面开车进入交通。是的,有点儿 疯..“
Husse Mar 2007年10月
%
(它会选择“%”之前的所有内容)
答案 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
但它应该让你开始!