Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 转义字符以将字符串设置为HTML标记_Php - Fatal编程技术网

Php 转义字符以将字符串设置为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

我想将一个变量设置为带有变量源的HTML图像标记。这是我的功能

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和\>;。您可以将它们放在一个带引号的字符串下。