我有一个包含链接和网站名称的文本文件。
例如:
雅虎 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
不知道为什么你不只使用 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拆分包含空格的标签。
$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>';
}
文件"测试.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>';
}