我正在编写一个PHP应用程序,用于从RSS源中获取数据,并将其存储为不同的移动应用程序格式。
除了从字符串中获取数据的重要位之外,一切正常。数据中有明显的新行,但我无法爆炸!这是我尝试将每一行存储到数组中的尝试。我已经用尽了我的知识和谷歌的结果!!
// Prepare the data
$possibleLineEnds = array("\r\n", "\n\r", "\r");
$preparedData = trim($row['description']);
// Loop through and replace the data
foreach ($possibleLineEnds as $lineEnd) {
$preparedData = str_replace($lineEnd, "\n", $preparedData);
}
// Explode the data into new rows
$locationData = explode("\n", $preparedData);
print_r($locationData);
任何想法,任何事都会受到欢迎!
我无法将此标记为已回答,因为我的评分为10。
我已经开始工作了!我知道它不尽可能整洁,我明白不懂preg函数的模式!
以下是有效的代码:
// Prepare the data
$possibleLineEnds = array("\r\n", "\n\r", "\r", "<br>", "<br/>", "<br/>");
$preparedData = trim(htmlspecialchars_decode($row['description']));
// Replace the possible line ends
$preparedData = str_replace($possibleLineEnds, "\n", $preparedData);
// Explode the data into new rows
$locationData = explode("\n", $preparedData);
print_r($locationData);
感谢大家的投入,我们最终到达了那里!
答案 0 :(得分:1)
我只想使用preg_split()
来匹配\n
和\r
字符的任意组合,而不是使用str_replace()
来处理字符串,这样我们就可以{{1}它。
您的整个代码缩减为一行:
explode()
这与原始解决方案的唯一区别在于,如果输入包含空行,则它们不会出现在爆炸输出中。但我认为在你的情况下这可能是一件好事。
答案 1 :(得分:1)
如果您无法按新行拆分。按唯一字符串拆分;
// Prepare the data
$possibleLineEnds = array("\r\n", "\n\r", "\r", "\n");
$preparedData = trim($row['description']);
// Loop through and replace the data
foreach ($possibleLineEnds as $lineEnd) {
$preparedData = str_replace($lineEnd, ":::", $preparedData);
}
// Explode the data into new rows
$locationData = explode(":::", $preparedData);
print_r($locationData);
答案 2 :(得分:1)
我已经开始工作了!我知道它不尽可能整洁,我明白不懂preg函数的模式!
以下是有效的代码:
// Prepare the data
$possibleLineEnds = array("\r\n", "\n\r", "\r", "<br>", "<br/>", "<br/>");
$preparedData = trim(htmlspecialchars_decode($row['description']));
// Replace the possible line ends
$preparedData = str_replace($possibleLineEnds, "\n", $preparedData);
// Explode the data into new rows
$locationData = explode("\n", $preparedData);
print_r($locationData);
感谢大家的投入,我们最终到达了那里!
答案 3 :(得分:0)
我通常使用的是:
$preparedData = str_replace("\r", "", $preparedData);
$locationData = explode("\n", $preparedData);
这一直对我有用,我希望它可以帮助你