Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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/3/sockets/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中将变量插入字符串_Php_Escaping - Fatal编程技术网

在PHP中将变量插入字符串

在PHP中将变量插入字符串,php,escaping,Php,Escaping,我将html变量放在php变量中,但它们并没有正确转义,所以我有一个问题:谁能帮助我?下面是代码: $var['foo'] = "<p>$coord->name</p><p>$coord->address</p><a href=\"<?php echo site_url('info_hospital/$id'); ?>\">Details</a>"; $var['foo']=“$coord->nam

我将html变量放在php变量中,但它们并没有正确转义,所以我有一个问题:谁能帮助我?下面是代码:

$var['foo'] = "<p>$coord->name</p><p>$coord->address</p><a href=\"<?php echo site_url('info_hospital/$id'); ?>\">Details</a>";
$var['foo']=“$coord->name

$coord->address

”;

问题出在哪里?

嗯。。。其中有几个错误,但这应该是可行的:

<?php 
$var['foo'] = "<p>{$coord->name}</p><p>{$coord->address}</p><a href=\"" . site_url("info_hospital/$id") . "\">Details</a>";
$var['foo']=“”$coord->name。”

“$coord->address。”

”;

干杯

对于使用如此大的字符串,我赞成使用:

$var['foo']=sprintf(
“%s

%s

”, $coord->name, $coord->地址, 站点url($id) );
与双引号相比,串联通常具有较小的性能优势。此外,在突出显示语法的文本编辑器中,变量更为突出

$var['foo'] = '<p>' . $coord->name . '</p><p>' . $coord->address . '</p><a href="' . site_url('info_hospital/$id') . '">Details</a>';
$var['foo']=''$坐标->名称。“

”$坐标->地址。“

",;
事情不是这样的。看看到底是什么不起作用?你知道PHP块不会在字符串中执行吗?是的,这个块没有执行。因此,我认为它没有正确转义…为什么不尝试一下?不幸的是,它不起作用…href it没有正确转义您的意思是
site\u url()
函数返回的字符串没有正确转义吗?如果是这样的话,这是一个完全不同的问题,但可能可以通过
urlencode()
解决。为了帮助您解决这个问题,我们确实需要了解该函数的内部工作原理。或者你可以像我说的那样尝试
urlencode()
$var['foo'] = sprintf(
  '<p>%s</p><p>%s</p><a href="%s">Details</a>', 
  $coord->name, 
  $coord->address, 
  site_url($id)
);
$var['foo'] = '<p>' . $coord->name . '</p><p>' . $coord->address . '</p><a href="' . site_url('info_hospital/$id') . '">Details</a>';