我想做点什么但是无法弄清楚如何做到这一点(我是php的新手)
假设我有一个URL列表,显示了这个preg_replace的实时内容,
$html = preg_replace('/\s(\w+:\/\/)(\S+)/', ' <a href="http://localhost/get.php?url=\\1\\2" target="_blank"> GO</a> ', $html);
我的输出就像
http://localhost/get.php?url=http://yahoo.com
很明显你可以在输出页面查看链接,现在我想在首页隐藏它们并让它们可点击并正常工作类似于我们可以将链接更改为变量,然后通过点击来调用它们,并且在背景中可以执行与我们点击首页链接相同的内容
你看起来有点混乱:(
答案 0 :(得分:0)
对不起,也许我不是很了解,但是,不是最好的approch在侧服务器中使用数组并使用另一个Get变量来做到这一点吗?
例如?link = yahoo
然后
在url数组中查找链接?
顺便说一下,我正在使用NoScript并向我报告,就像警告一样......
答案 1 :(得分:0)
您可以将网址保存到$ _SESSION变量中,当某些用户点击该链接时,会从$ _SESSION中重新检索网址并重定向到该网址...
//page1 - parse, save link in session and print a call to page2
<?php
session_start();
$_SESSION['url'] = preg_replace('/\s(\w+:\/\/)(\S+)/', ' <a href="http://localhost/get.php?url=\\1\\2" target="_blank"> GO</a> ', $html);
....
echo '<a href="./page2.php">GO</a>';
?>
//page2
<?php
session_start();
header('Location: '.$_SESSION['url']);
?>
如果我不明白你的意思......
显然现在我使用$ _SESSION ['url']作为单个字符串,但你可以使用多维数组intead ......
更新:
如果在脚本上使用数组,无论如何都会更好。 例如:http://www.test.org/go.php?page=#(其中#是数字)
<?php
$array=("http://www.google.com","http://stackoverfloc.com","ecc");
//you can add more contorl in if statement, like between etc...
if (is_numeric($_GET['page']) header('Location: '.$array[$_GET['page']]);
?>
答案 2 :(得分:0)
您建立的链接看起来像这样:
yourdomain.com/redirector.ph?url=#
其中#
代表标识符。
在redirector.php中,检查您是否知道该标识符并发送重定向HTTP标头:
标题(“位置:http://www.example.com/”);
重要提示:
您可能不会在发送标题之前发送任何数据,发送后的代码也不会被执行。
<强>信息强>
http://php.net/manual/en/function.header.php
修改强>
使用这个标题并不是绝对正确的标准,但它并不太远,因为响应确实在另一个位置。