Echo / return在变量之前添加空格

时间:2012-10-15 18:42:15

标签: php mysql

我有一些代码,它从数据库中获取信息,然后创建一个图像的路径并返回它,我在另一个页面上用作img src。

这是功能:

function getMainImage ()
{
    $query = "SELECT * FROM pictures WHERE username = '$_SESSION[username]' AND main = 'y' LIMIT 1";
    include 'connect.php';
    $result = mysql_query($query) or die (mysql_error());
    mysql_close($dbhandle);
    $row = mysql_fetch_assoc($result);
    $path = "images/t_$row[username]_$row[number].$row[ext]";
    return $path;
}
<img src="<?php echo getMainImage(); ?>" width="40" height="40" />

查看页面源时的输出是:

<img src=" images/t_image_3.jpg" width="40" height="40" />

在“images /”之前,该功能会添加一个额外的空间。我已经尝试修剪路径,甚至在调用它时修剪功能,但都没有工作。有什么想法吗?

3 个答案:

答案 0 :(得分:5)

包括

你看到的空白几乎肯定来自这条线:

include 'connect.php';

检查文件connect.php中的内容,并在开始<?php之前删除任何空格,如果它有?>,只需将其删除即可。

答案 1 :(得分:1)

我的朋友@ AD7six是对的! (他推荐的是最好的事情!)。

但是,如果你很难“抓住”这个空间并且你想要解决它,你可以改为:

$img = getMainImage();
echo "<img src='\"images/t_" .  $img . "\" width=\"40\" height=\"40\" />";

答案 2 :(得分:0)

尝试这个小解决方案:

    require_once 'connect.php';

        function getMainImage (){
            $User = mysql_real_escape_string($_SESSION[username]);
            $query = "SELECT * FROM pictures WHERE username = '$User' AND main = 'y' LIMIT 1";
            $result = mysql_query($query, $connetion) or die (mysql_error());
            $row = mysql_fetch_assoc($result);
            if($row) $path = "images/t_$row[username]_$row[number].$row[ext]";
            return isset($path) ? $path : 'default_url_to_img';
        }

<img src="<?= getMainImage(); ?>" alt="some txt" width="40" height="40" />