只有最后一个数组元素被正确写入

时间:2018-07-06 12:48:36

标签: php mysql

$str = "5ad46120704cf.jpg
5ad46120708b7.jpg
5ad4612070c9f.jpg
5ad46120700e7.jpg";

$arr = explode("\n", $str);
foreach ($arr as $el) {
    $sqlb = "select * from banners where fname = '" . $el . "' limit 1";
    $stb = $db->prepare($sqlb);
    $stb->execute();
    $row = $stb->fetch();
    $items .= "<img class='bsingle' src = '../banners/" . $row['fname'] . "' alt='img'>\n";
}
echo $items;

结果:

<img class='bsingle' src = '../banners/' alt='img'>
<img class='bsingle' src = '../banners/' alt='img'>
<img class='bsingle' src = '../banners/' alt='img'>
<img class='bsingle' src = '../banners/5ad46120700e7.jpg' alt='img'>

为什么只有酵母bsingle具有完整的来源价值?

我在表中签到-没有空单元格。

有帮助吗?

2 个答案:

答案 0 :(得分:1)

我想新行可能是\ r \ n,如果仅用\ n分隔,则\ r仍在其中

使用持续EOL可以解决问题 否则尝试trim()

答案 1 :(得分:1)

我想新行可能是\ r \ n,如果仅用\ n分隔,则\ r仍在其中

使用恒定EOL可以解决该问题,否则请尝试trim()

取决于系统,行的结尾是\ r \ n或\ n php使用\ n 大多数系统使用\ r \ n

示例:

 $str = 'LINE1'.EOL.'LINE2'.EOL;
 $arr = explode(EOL, $str);

您还可以使用preg_split代替explode并使用这两种变体

http://php.net/manual/de/function.preg-split.php

 $lines = preg_split("/(\r\n|\n|\r)/",$content);