1

我有一个包含链接和网站名称的文本文件。

例如:

雅虎http://www.yahoo.com
谷歌http://www.google.com

然后我必须将此文本文件加载到我的 php 网站中。我可以加载文件

然后我必须将这些文本转换为超链接。我必须找到链接的位置。

我用过:

echo strchr("$array[$x]","http") // find the hyperlink
echo substr("$array[$x]",0,8) // find the website name

找到网站名称及其超链接后,我该如何<a href ...></a>创建链接?

我试过了:

echo "<a href = "echo strchr("$array[$x]","http");>echo substr("$array[$x]",0,8). "<br>\n"; </a>

但它不起作用。实际上我不知道该怎么做。这里有人可以帮我解决吗?


这是我的示例代码:

s13.postimg.org/ce8omobnr/image.png

s23.postimg.org/ym3nifyfv/image.png

4

2 回答 2

1

不知道为什么你不只是使用 explode 来分割输入文件中每一行的片段,除非输入的格式与你显示的不同。

否则,您可以使用 file() 读取输入文件,该文件返回文件中的行数组。然后你可以遍历这个数组并将每一行分解成两部分。第一部分是名称,第二部分是超链接。然后只需创建链接标签就可以了。

示例代码:

<?php
$lines = file('input.txt');

foreach ($lines as $curLine)
{
    $pieces = explode(" ", $curLine, 2);

    echo sprintf("<a href=\"%s\">%s</a>\n", trim($pieces[1]), trim($pieces[0]));
}

编辑: 刚刚看到您的更新并注意到您在每行的标记之间有多个空格或其他空白字符。在这种情况下,替换该行:

$pieces = explode(" ", $curLine, 2);

和:

$pieces = preg_split('/\s+/', $curLine);

编辑 2: 如果每行上标签和超链接之间的实际分隔符是一个或多个制表符,并且标签可能包含空格(请参阅下面 Fred 的评论),则将该行更改为:

$pieces = preg_split('/\t+/', $curLine);

这将防止 preg_split 拆分包含空格的标签。

于 2013-06-12T07:02:54.053 回答
1
    $file1 = "test.txt";
    $lines = file($file1);
    foreach($lines as $line_num => $line)
    {
    //echo $line;
    $piece=explode(' ',$line);
    //echo $piece[0]."<br>";
    //echo $piece[1];
    echo '<a href="'.$piece[1].'">'.$piece[0].'</a><br>';
    }

文件“test.txt”:

Yahoo http://www.yahoo.com
Google http://www.google.com

编辑

所以,一点更新:

$file1 = "updir/bookmark.txt";
$lines = file($file1);
foreach($lines as $line)
{
    $piece=explode(" ",$line);
    $link=trim($piece[1]);
    $text=trim($piece[0]);
    echo '<a href="'.$link.'">'.$text.'</a><br>';
}
于 2013-06-12T07:07:13.303 回答