php 根据数据库列中的 link 在 Joomla 中显示 <img src />

php display <img src /> in Joomla based on link in Database column

我正在尝试显示链接到基于 Joomla 站点登录的用户的图像。

我使用的PHP代码如下:

<?php
$user = JFactory::getUser();

$username = $user->username;

echo '<img src="$user->picture" />'
;
?>

在我的测试和故障排除过程中,我在没有图像源标签的情况下进行了测试,我收到了来自我的数据库 table 的回调,标签为 Images/LOGO.jpg,它在我的前端显示为一个字符串。

当我再次使用图像源并将 $user->picture 替换为数据库列中的相同字符串时,图像 returns 100%.

按照上面的代码保留页面加载成功但没有返回图像。

谢谢,

单引号不打印var值,改成 "<img src=\"$user->picture\" />"

Bug 很明显....echo '<img src="$user->picture" />'
你有没有注意到上面的代码片段有什么异常?

这里有一个提示:试试这个:<?php $var="test"; echo '$var'; ?>
你得到了什么?
当然,您按原样恢复了一切: VERBATIM - $var 而不是预期的 test.
所以这里是要点:

Any variable within Single Quotes in PHP would NOT expand/evaluate to a Value...
You'd just get the Variable back: Verbatim

宁愿这样做:

    <?php
        $user       = JFactory::getUser();
        $username   = $user->username;
        // NOTICE THE DOUBLE QUOTES SURROUNDING THE "<img... />" TAG
        // THOUGH NOT SO IMPORTANT, BUT NOTICE ALSO THE BRACES AROUND
        // {$user->picture}
        echo "<img src='{$user->picture}' />";

顺便说一句;在 Joomla 中,您可以获得像这样的用户头像:

    <?php
        // USE jimport TO PULL IN THE PROFILE PICTURE CLASS
        jimport('profilepicture.profilepicture');

        // GET THE USER OBJECT LIKE YOU ALREADY DID
        $user       = JFactory::getUser();

        // CREATE A NEW INSTANCE OF THE ProfilePicture CLASS PASSING IT THE USER ID
        $userPix    = new ProfilePicture($user->get('id'));

        // ECHO OUT THE ENTIRE HTML FOR THE USER PROFILE PICTURE
        echo $userPix->toHTML();

干杯,祝你好运,伙计! ☝️✌️