PHP - 使用 HTMLvalues 创建数组的正确方法
Posted
技术标签:
【中文标题】PHP - 使用 HTMLvalues 创建数组的正确方法【英文标题】:PHP - Right way to create an array with HTMLvalues 【发布时间】:2015-12-15 05:50:41 【问题描述】:创建包含 html 值的 php 数组的最佳方法是什么?我需要能够将其编码为 JSON 并成功解码。
例如:我的 PHP 数组如下所示:
Array
(
[0] => Array
(
[Name] => <a href="http://gotourl.com?user=john+vz">john</a>
[Sex] => M
)
[1] => Array
(
[Name] => <a href="http://gotourl.com?user=sue+hp">sue</a>
[sex] => F
)
)
【问题讨论】:
您可以尝试传递值,但不能传递 HTML。您可以生成 html 并使用 json 中的值使用 javascript 或您想要的任何内容对其进行迭代。 也许this可以帮助你。 【参考方案1】:我不知道你如何处理你的数据,或者你是否使用 JS 框架,但这是一个小例子,它是如何工作的
$htmlAnchors = array (
array (
"Name" => '<a href="http://gotourl.com?user=john+vz">john</a>',
"Sex" => "M"
),
array(
"Name" => '<a href="http://gotourl.com?user=sue+hp">sue</a>',
"Sex" => "F"
)
);
$jsonOutput = json_encode( $htmlAnchors );
?>
<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div>TODO write content</div>
<div id="anchors">
<!--insert links here-->
</div>
<script type="text/javascript">
var json = <?php echo $jsonOutput; ?>;
json.forEach( function( entry )
var anchors = document.getElementById( "anchors" );
anchors.innerHTML = anchors.innerHTML + entry.Name + "</br>";
);
</script>
</body>
</html>
【讨论】:
【参考方案2】:只保存值,而不是 html 结构。
$array = array();
$array[] = array(
"link" => "http://gotourl.com?user=john+vz",
"name" => "john"
, "sex" => "M"
);
$array[] = array(
"link" => "http://gotourl.com?user=sue+hp",
"name" => "sue"
, "sex" => "F"
);
$string = json_encode($array);
传输字符串并解码如下:
$links = json_decode($string);
foreach ($links as $value)
printf('<a href="%s">%s Sex: %s</a>', $value['link'], $value['name'], $value['sex']);
您可以考虑任何其他结构来保存这些值。您不需要使用 KVP 保存它,您可以使用带有命名键的嵌套数组。
【讨论】:
【参考方案3】:PHP 的 json_encode 函数为您完成所有繁重的工作。您可以像这样创建数组并对其进行编码:
$people = array(
array
(
'Name' => '<a href="http://gotourl.com?user=john+vz">john</a>',
'Sex' => 'M'
),
array(
'Name' => '<a href="http://gotourl.com?user=sue+hp">sue</a>',
'sex' => F
)
);
$json = json_encode($people);
【讨论】:
以上是关于PHP - 使用 HTMLvalues 创建数组的正确方法的主要内容,如果未能解决你的问题,请参考以下文章