mysql数据库有以下三列:
id url_href url
1 yahoo http://www.yahoo.com
2 google http://www.google.com
3 bing http://www.bing.com
我使用以下查询来获取值
mysql_select_db($database_XYZ, $XYZ);
$query_urlencoder = "SELECT id, url_href, url FROM sites WHERE id >0 ORDER BY id DESC";
$urlencoder = mysql_query($query_urlencoder, $XYZ) or die(mysql_error());
$row_urlencoder = mysql_fetch_assoc($urlencoder);
$totalRows_urlencoder = mysql_num_rows($urlencoder);
href标签
<a href="redirect.php?encodeurl=<?php echo $row_urlencoder['url']; ?>" target="_blank"><?php echo $row_urlencoder['url_href']; ?></a>
根据重复区域动态填充页面上的链接,例如
yahoo
google
bing
并点击上面的链接分别将用户带到
http://www.examplecom/redirect.php?encodeurl=http://www.yahoo.com
http://www.example.com/redirect.php?encodeurl=http://www.google.com
http://www.example.com/redirect.php?encodeurl=http://www.bing.com
但实际上并没有像
那样重定向到相应的网址http://www.yahoo.com
http://www.google.com
http://www.bing.com
在这种情况下,如何将href链接重定向到上面的url?任何建议或参考都应该感谢。
答案 0 :(得分:1)
使用urlencode php函数
redirect.php?encodeurl=<?php echo urlencode($row_urlencoder['url']); ?>
答案 1 :(得分:1)
试试这个。
<?php
while($row = mysql_fetch_assoc($urlencoder)){
echo '<a href="http://yoursite.com/redirect.php?encodeurl='.$row_urlencoder['url'].'" target="_blank">'.$row_urlencoder['url_href'].'</a>';
} ?>
在你的redirect.php
中<?php
sleep(20);
header('Location:'.$_GET['encodeurl'].'');
?>
答案 2 :(得分:0)
rawurlencode( )
会帮助你。
需要转义编码的字符是控件,空格和保留字符:
; / ? : @ & = + $ ,
分隔符也必须编码:
< > # % "
以下字符可能会导致网关和网络代理出现问题,还应编码:
{} | \ ^ [ ] `
PHP提供rawurlencode( )
功能来保护它们。例如,rawurlencode( )
可以构建嵌入式链接的href
属性:
echo '<a href="search.php?q=' .
rawurlencode("100% + more") .
'">';
结果是<a>
元素,其中嵌入的URL已正确编码:
<a href="search.php?q=100%25%20%2B%20more">
PHP还提供与urlencode( )
函数不同的rawurlencode( )
函数,前者将空格编码为+号,而后者encodes
空格编号为%20
。使用+字符编码空格是一种编码空格的早期HTTP方式。