如何从文本文件中查找单词后创建超链接

时间:2013-06-12 06:38:02

标签: php file-io hyperlink

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

例如:

  

雅虎http://www.yahoo.com
  Google 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

2 个答案:

答案 0 :(得分: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分割包含空格的标签。

答案 1 :(得分: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>';
}