【问题标题】:PHP - Right way to create an array with HTMLvaluesPHP - 使用 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可以帮助你。

标签: php


【解决方案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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-27
        • 2016-02-02
        • 2012-06-18
        • 1970-01-01
        • 2016-04-02
        • 2023-04-05
        • 1970-01-01
        • 2015-12-31
        相关资源
        最近更新 更多