Php 转义字符以将字符串设置为HTML标记
我想将一个变量设置为带有变量源的HTML图像标记。这是我的功能Php 转义字符以将字符串设置为HTML标记,php,Php,我想将一个变量设置为带有变量源的HTML图像标记。这是我的功能 function convertImageMod($string) { $string = preg_replace('/\s+/', '', $string); $string = str_replace("'", "", $string); $stringlength = strlen($string); $stringlength -= 3; $string = substr ($string, 0, $stringlengt
function convertImageMod($string)
{
$string = preg_replace('/\s+/', '', $string);
$string = str_replace("'", "", $string);
$stringlength = strlen($string);
$stringlength -= 3;
$string = substr ($string, 0, $stringlength);
$string = strtolower ($string);
$string = "<img src:\"images/items/" . "$string" . ".png" . "\"></img>" ";
return $string;
}
但是,我不断遇到以下错误:
分析错误:语法错误,第26行的C:\web\functions.php中出现意外的“”
我认为我已经正确地避开了所有必要的引用。
知道我收到的错误消息是什么吗?输入错误:
$string = "<img src:\"images/items/" . "$string" . ".png" . "\"></img>" ";
您可以通过以下方式进行修复:
$string = "<img src=\"images/items/{$string}.png\">";
您没有正确转义双引号
UPD:
此外,标记不需要结束标记。请参阅。,因为错误消息显示您的行中有太多内容:
$string = "<img src:\"images/items/" . "$string" . ".png" . "\"></img>" ";
应改为:
$string = "<img src:\"images/items/" . "$string" . ".png" . "\"></img>";
更改:
第26行
$string = "<img src:\"images/items/" . "$string" . ".png" . "\"></img>" ";
致:
第26行:
$string = "<img src:\"images/items/".$string.".png \"></img>";
为什么不在变量中使用双引号,在“简单引号”中使用双引号,它非常简洁易读
$string = "<img src='images/items/{$string}.png'>";
第26行和之前的那一行是什么?我想这是个错误。应该读为@Fred这是一个HTML问题,它不会导致PHP错误。@Barmar谢谢,我原以为会的。我不知道这不会导致错误。现在我看了第二眼,结果太多了。而不是使用$变量这很难阅读,您可以使用…{$variable}…,这是一个更干净的代码。使用{}括号甚至可以在{$arr[0]}中插入数组,它们的读数为ok。您可以避免使用这些括号,但正如我所说的,数组将失败,并且您的变量名可能与实际的HTML混合。同样,这应该是可行的:更简单的方法是切换到单引号,这样就不需要转义。我不明白为什么人们对自己如此苛刻。@Barmar或使用单字符串双引号来避免事情复杂化。如果你问我的话,我会说得更清楚。我就是其中之一,今晚学到了一些东西。伟大的一行-@腐败的Q:难道不能通过使用字符串=;,来进一步缩短它吗@我直到现在才看到它。我能理解你为什么要用双引号,如果我能帮上忙的话,我会尽量多用双引号。我只是想,通过缩短它,有些人喜欢使用更短的代码。为什么需要将.png和\>;。您可以将它们放在一个带引号的字符串下。