【问题标题】:Help with list output帮助列表输出
【发布时间】:2011-11-24 08:03:55
【问题描述】:

我这里有这个表达方式

$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 定义为上面的函数,它可以获取“[Group1]”和“[/Group1]”之间的任何内容。 文本文件组包含以下内容:

[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

我该如何解决这个问题? 基本上我可以从输出中删除&lt;a href=''&gt;&lt;img src=''/&gt;吗?

谢谢!

编辑:添加了 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);

【问题讨论】:

  • 也许你的get_string_between 没有运行你认为它是如何运行的?你能发布那个功能吗?
  • 我已将get_string_between 函数添加为编辑。

标签: php list file-get-contents explode


【解决方案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);
}

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

【讨论】:

  • 哈哈,谢谢!我通过修改最后一行如return substr($text, ($n1+1), ($n2 - $n1-2)); 解决了我的问题
猜你喜欢
  • 2011-01-26
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 2015-08-25
  • 2021-10-23
相关资源
最近更新 更多