繁体   English   中英

连接 HTML 和 PHP 以制作图像链接

[英]Concatenating HTML and PHP to make an image link

我正在尝试使用 PHP 和 HTML 将图像制作成链接。 主要思想是从 Twitter 获取用户的图像和屏幕名称,然后通过构建 URL 并在末尾添加他们的屏幕名称,使图像成为指向其个人资料的可点击链接。 但我收到一条错误消息:

解析错误:语法错误,意外的 T_CONSTANT_ENCAPSED_STRING,需要 ',' 或 ';' 在 C:\\wamp\\www\\fyp\\tweeter3.php 第 71 行。

这是第 71 行(它是 foreach 循环的一部分):

<?php echo "<a href = ".$url"><img src = ".$userImage." class = ".$class."></a>"; ?>

那里有一个语法错误,我无法确定。 这些是我的变量:

$userScreenName = $user -> screen_name;
$userImage = $user -> profile_image_url;
$class = "myImgClass";
$url = "https://twitter.com/".$userScreenName;

你能发现错误吗?

失踪. $url

<?php echo "<a href = ".$url"><img...

您在 $url 和 HTML 引号之后缺少一个点以生成有效代码:

<?php echo "<a href = '".$url."'><img src = '".$userImage."' class = '".$class."'></a>"; ?>

没有引号你会得到:

<a href = the url><img src = user image class = the class></a>

用引号:

 <a href = 'the url'><img src = 'user image' class = 'the class'></a>

在 $url 之后你需要有一个时期。

试试这个:

<?php 
echo "<a href = \"".$url."\"><img src = \"".$userImage."\" class = \"".$class."\"></a>";
?>

在我看来,最简单、最易读的方法是:

<?php echo "<a href = '$url'><img src = '$userImage' class = '$class'></a>"; ?>

只有一个长文本,并且没有使用连接。 它减少了由于缺少双引号或缺少点而导致错误的可能性。 所有 PHP 变量都会被它们的值自动替换。

您还可以使用printf将所有变量放在字符串之外:

<?php printf('<a href = "%s"><img src = "%s" class = "%s"></a>', $url, $userImage, $class); ?>

将 html 字符串与 php 变量连接起来不是一个好习惯。 这导致可能的注入向量(XSS)。 为避免可能的 XSS(DOM 或 STORED),请将变量过滤为字符串。 特别是如果该值来自用户输入。 例如。

<?php echo "<a href = '".filter_var($url, FILTER_SANITIZE_STRING)."'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM