1

我对 PHP 完全陌生,所以如果这看起来很简单,我很抱歉。通过阅读这个网站,我在其他问题上得到了很多帮助,我尝试了很多不同的例子来尝试解决这个问题,但还不能解决这个问题。

我有一个网站,一些用户将包含指向其个人博客(外部站点)的链接,而其他用户则不会。我在 mySQL 表中设置了一个字段,标记为blog. 字段内的数据是包含http://.

我想显示如下消息:Visit my blog here。作为here用户博客站点的链接。

我有以下代码

<?php
if (!isset ($blog)) 
{
?>
    Visit my blog <a href="<?=$data['blog'];?>" target="_blank">here</a>
<?php
}
?>

链接可以正常工作,但是,如果数据字段为空,它仍会显示,并且链接指向代码所在的同一页面。

我试过这段代码:

<?php
if (!isset ($blog)) 
{
    echo "Visit my blog <a href=\" . $blog .\" target=\"_blank\">here</a>." ;
}
?>

这将显示该echo字段是否为空白且链接未从表中提取数据。

我真的不知道我做错了什么。

4

3 回答 3

1

你需要在你的 if 语句中添加一个条件来查看 $data['blog'] 中是否有任何内容,否则无论 $data['blog'] 中有什么链接都会一直加载

例如:

if((!isset($blog)) && ($data['blog'] !== ''))

显然,测试 '' 可能不适合您,因此您可能必须将测试调整为类似 ' '、null 或类似的东西。

于 2015-08-13T17:22:04.107 回答
0

isset()检查变量是否存在并忽略变量中的值,例如

<?php

var_dump(isset($foo)); // false, $foo was never created
$foo = null;
var_dump(isset($foo)); // true - $foo exists, even though it's been nulled

所以如果你的$blog EVER有一个分配给它的值,它会isset()是真的。你可能想要

if ($blog != '')

反而。

于 2015-08-13T17:19:02.823 回答
0

尝试这个

<?php
    if ($blog != "") {
        echo 'Visit my blog <a href="'.$blog.'" target="_blank">here</a>';
    }
?>
于 2015-08-13T17:21:11.947 回答