在大括号之间的变量周围添加htmlspecialchars

时间:2017-03-16 13:41:06

标签: php

鉴于以下代码块,我想将$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']})',

2 个答案:

答案 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': [
                ";