鉴于以下代码块,我想将$category_info['name']
包含到htmlspecialchars()
,但由于变量包含在大括号中,因此存在轻微问题。
$data['sendCategory'] .= "
'id': {$category_id},
'name': '{$category_info['name']}',
'parent': {$category_id_parent},
'breadcrumb': [
";
我尝试了以下变体,但他们打破了代码:
'name': '{htmlspecialchars($category_info['name'])}',
和
'name': 'htmlspecialchars({$category_info['name']})',
答案 0 :(得分:2)
你可以在那一行之前完成:
$encoded_category_info = htmlspecialchars($category_info['name']);
$data['sendCategory'] .= "
'id': {$category_id},
'name': '{$encoded_category_info}',
'parent': {$category_id_parent},
'breadcrumb': [
";
或者,如果你真的希望它是内联的,请将其连接到:
$data['sendCategory'] .= "
'id': {$category_id},
'name': '" . htmlspecialchars($category_info['name']) . "',
'parent': {$category_id_parent},
'breadcrumb': [
";
基本上,您正在接近字符串中“代码内的代码”的概念,这很快就会难以解析和理解事物。尽可能干净地将它分开。不仅仅是解析器,还有你以后读代码的时候。
答案 1 :(得分:0)
尝试以下代码
$data['sendCategory'] .= "
'id': {$category_id},
'name': '{$category_info[\'name\']}',
'parent': {$category_id_parent},
'breadcrumb': [
";