将一个链接分成多个链接(php)

时间:2012-10-22 12:40:21

标签: php mysql

我有一个带有html表的结果php页面。在row[3]内,我有剧透。如果我点击一个文本值我可以看到隐藏的内容。
内隐藏的内容我在不同的行上有链接为了做到这一点:
- 我在mysql textarea中插入文本,所以:

enter image description here
- 然后我在<head>部分

中添加了javascript代码
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
   <script type="text/javascript">
$(function() {
        $(".spoiler-label").click(function() {
        $(this).parent().find(".spoiler-content").toggle();
    });
    });
</script>

- 然后是php代码:

echo '<td><span class="spoiler-label">'.$row[1].'</span><div class="spoiler-content" style="display: none"><br><a href='.$row[3].'<a/></div><td>';

- 为了打破新行中的文本,我使用这个PHP代码:

    $row['3']=stripslashes($row['3']);
    $row['3']=str_replace('<br />',"newline",$row['3']);
    $row['3']=htmlentities($row['3']);
    $row['3']=str_replace('newline',"<br>",$row['3'])

我获得了这个最终结果:

enter image description here

但你可以看到问题:

- 缺少格式,因为第X行的<th>为黑色且不是橙色 - 扰流板内的链接为2,但被视为一个链接。
- 我没有正确链接,因为 google.com http://google.com<br为什么?
您可以看到2个链接:http://alfa.com
http://google.com
如果我点击http://alfa.com,则链接始终为http://google.com<br 我想要
- 从链接中删除<br - 将一个链接分成不同的链接(alfa.com和google.com)
- 修复错误的行格式


这是我的网页完整代码http://pastebin.com/zb22VqwD和此css http://pastebin.com/dFRFURGM

2 个答案:

答案 0 :(得分:1)

首先,你的1行php代码回显是错误的(你没有关闭<a>)。由于这个原因,CSS没有用。

(我删除了第一个回声)

第二,<a>代码中不能包含其他<a>代码,因此您应该从上面的代码中删除整个<a>,这意味着它应该是:

echo '<td><span class="spoiler-label">'.$row[1].'</span><div class="spoiler-content" style="display: none"><br>'.$row[3].'</div><td>';

然后,当由于某种原因而不是将您的<br/>更改为旧版<br>标记时,请使用该标记创建数组:

$ary=explode('<br />',$row['3']);
$str="";
foreach($ary as $str2){
$str.="<a href=\"$str2\">$str2</a><br/>";
}

然后将$str回显到行

您的代码应为:

$row['3']=str_replace('<br />',"newline",$row['3']);
$row['3']=stripslashes($row['3']);
$row['3']=htmlentities($row['3']);
$ary=explode('newline',$row['3']);
$str="";
foreach($ary as $str2){
    $str.="<a href=\"$str2\">$str2</a><br/>";
    //$str.="$str2<br/>";
}
$row['3']=$str;

答案 1 :(得分:0)

您正在使用beolow代码:

$row['3']=stripslashes($row['3']);
$row['3']=str_replace('<br />',"newline",$row['3']);
$row['3']=htmlentities($row['3']);
$row['3']=str_replace('newline',"<br>",$row['3'])

而不是上面的代码使用如下:

$row['3']=str_replace('<br />',"newline",$row['3']);
$row['3']=stripslashes($row['3']);
$row['3']=htmlentities($row['3']);
$row['3']=str_replace('newline',"<br>",$row['3'])

只需将第一行替换为第二行和第二行即可。首先尝试...希望此帮助..