所以我有一个链接列表,显示链接与URL的关系
<a href="http://www.google.com">Mary Jones</a>
<a href="http://www.yahoo.com">Sam</a>
<a href="http://www.stackoverflow.com">Jill</a>
我需要一个快速的jQuery或PHP,将这些链接应用到像这样的文档
Jill
Sam
Mary Jones
Jill
所以结果将是
<a href="http://www.stackoverflow.com">Jill</a>
<a href="http://www.yahoo.com">Sam</a>
<a href="http://www.google.com">Mary Jones</a>
<a href="http://www.stackoverflow.com">Jill</a>
答案 0 :(得分:1)
假设您已经知道如何阅读名称文件:
<?php
$lookup = array (
'Jill' => 'http://www.stackoverflow.com',
'Sam' => 'http://www/yahoo.com',
'Mary Jones' => 'http://www.google.com',
)
foreach ($names as $name) {
echo "<a href='" . $lookup[$name] ."'>$name</a>";
}
答案 1 :(得分:1)
$input = array(
'<a href="http://www.google.com">Mary Jones</a>',
'<a href="http://www.yahoo.com">Sam</a>',
'<a href="http://www.stackoverflow.com">Jill</a>'
);
$urlsMap = array();
foreach ( $input as $url ) {
$name = stripslashes($url);
$urlsMap[ $name ] = $url;
}
$relationship = array(
'Jill',
'Sam',
'Mary Jones',
'Jill'
);
$output = array();
foreach ( $relationship as $name ) {
if ( isset( $urlsMap[ $name ] ) ) {
$output[] = $urlsMap[ $name ];
}
}
答案 2 :(得分:1)
我会使用正则表达式:
<?php
$links =
'<a href="http://www.google.com">Mary Jones</a>
<a href="http://www.yahoo.com">Sam</a>
<a href="http://www.stackoverflow.com">Jill</a>';
$text = preg_match_all('/<a href="([a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+)">([A-Za-z ]+)<\/a>/i', $links, $matches);
$tomatch = array('Jill', 'Sam', 'Mary Jones', 'Jill');
for( $i = 0, $l = count( $matches[0] ); $i < $l; $i++ )
$corr[$matches[2][$i]] = $matches[1][$i];
foreach( $tomatch as $m )
echo '<a href="'.$corr[$m].'">'.$m.'</a><br />';
?>
答案 3 :(得分:1)
您可以通过打开第一个文件,创建地图,然后打开第二个文件并应用地图来完成此操作。自从我使用php以来已经有一段时间了,所以我会把它留给其他人。第一部分看起来像这样:
$file = file_get_contents('./linksfile', true);
$links = preg_split("/[\n\r]+/",$file);
$linkMap = array();
foreach ( $links as $link ) {
# NOTE! regex and xml is generally BAD,
# but if you have a fixed format it will do the job:
$name = preg_replace('/\<.*?\>/g', '', $link);
$linkMap[ $name ] = $link;
}
然后您需要应用该地图,正如其他人在答案中所示。
如果你想要jQuery
,你可以做类似这样的事情:
http://jsfiddle.net/jtbowden/QTZNK/
如果您正在处理两个文件,则必须对其进行修改,我不确定您的最终输出需要什么,但这表明可以采取其他方式。