[英]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.