我有一个包含链接和网站名称的文本文件。
例如:
然后我必须将此文本文件加载到我的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
答案 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>';
}