帮助列表输出

时间:2011-09-24 17:33:56

标签: php list file-get-contents explode

我在这里有这个表达

$data = file_get_contents('groups.txt');
function links1($l1, $l2){echo "<a href='". $l1 ."'><img src='". $l2 ."'/></a>";}
$parsed1 = get_string_between($data, "[Group1]", "[/Group1]"); 
$data = explode("\n", $parsed1);
foreach($data as $string2){
    list($l1, $l2) = explode(' ', $string2);
    links1($l1, $l2);}} 

我将get_string_between定义为上面的一个函数,它在&#34; [Group1]&#34;之间得到任何东西。和&#34; [/ Group1]&#34;。 文本文件组包含内容:

[Group1]
aaa 1.png
bbb 2.jpg
[/Group1]

问题在于,当我运行它时,它输出为

<a href=''><img src=''/></a><a href='aaa'><img src='1.png'/></a><a href='bbb'><img src='2.jpg'/></a><a href=''><img src=''/></a>

所以我得到这些虚拟的两个空格,我猜这些空间被添加到

之间的任何东西的正面和背面
aaa 1.png bbb 2.jpg

我该如何解决? 基本上我可以从输出开始和后退中删除<a href=''><img src=''/>吗?

谢谢!

编辑:添加了get_string_between函数

function get_string_between(){
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len);

1 个答案:

答案 0 :(得分:1)

get_string_between功能存在一些问题。我试着在这里清理它:

function get_string_between($text, $start, $end) {
    $n1 = strpos($text, $start);
    if ($n1 === false) return '';
    $n1 += strlen($start);
    $n2 = strpos($text, $end, $n1);
    if ($n2 === false) return substr($text, $n1);
    return substr($text, $n1, $n2 - $n1);
}

希望这有助于/引导您朝着正确的方向前进。