如何在php中正确编写<img rel="nofollow noreferrer" src>而不转义为HTML

Mic*_*ele 3 php joomla image src

我的PHP代码有问题.我一直在改变所有东西6个小时,无论我做什么,我仍然会得到Parse错误.这是代码:

$slider3 = '<img src="'templates/' . $this->template . '/images/slider/slider3.jpg'">' . '" alt="' . $sitename . '" />';
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是不要让它抛出错误就是这样写:

$slider3 =  '<img src="templates/" . $this->template . "/images/slider/slider3.jpg" .  "/>"';
Run Code Online (Sandbox Code Playgroud)

但我不认为这是对的.

我想$ slider3 ="templates/MYTEMPLATE/images/slider/slider3.jpg"然后我会回显$ slider3;

我对所有单引号和双引号都感到困惑.我认为第一个是正确的 - 我看着它并研究它,它看起来对我来说.但它会抛出一个解析错误.

Roe*_*ers 7

$slider3 = '<img src="templates/'.$this->template.'/images/slider/slider3.jpg"/>';
Run Code Online (Sandbox Code Playgroud)

应该管用.

说明:

'<img src="templates/'
Run Code Online (Sandbox Code Playgroud)

是一个单引号字符串,恰好包含一个双引号(html src属性需要,或者其他任何html属性值)

.
Run Code Online (Sandbox Code Playgroud)

(点)是字符串连接运算符.它将第一个字符串连接起来("胶水")......

$this->template
Run Code Online (Sandbox Code Playgroud)

这可能是一个包含模板名称的字符串(从您的代码示例中不清楚).请注意,如果$ this-> template来自用户输入或其他未经验证的源,则可以将其用于跨站点脚本,例如.如果它包含"> <script> alert("XSS!")<script>,则在浏览器中执行javascript!

.
Run Code Online (Sandbox Code Playgroud)

与...的另一个串联

'/images/slider/slider3.jpg"/>'

这是另一个单引号字符串,恰好包含一个双引号,结束了src属性值.

  • +1详细说明.好一个. (2认同)