代码之家  ›  专栏  ›  技术社区  ›  Kiriakos Grhgoriadhs

找到无效字符

  •  0
  • Kiriakos Grhgoriadhs  · 技术社区  · 7 年前

    我有一个MySQL查询,以便从数据库中获取一些记录。 然后,在一个循环中我有一个PHP数组,最后我有一个 json_encode() PHP函数。我从DB得到的值有一些HTML标记,因此 json编码() 不起作用。

    $pr_arr['products'][] = array(
                    "id"                => $results_products->id,
                    "business_id"       => $results_products->business_id,
                    "pid"               => $results_products->pid,
                    "category"          => $results_products->category,
                    "style_mapping"     => $results_products->style_mapping,
                    "name"              => $product_name,
                    "price"             => $price,
                    "offer_price"       => $offer_price,
                    "product_link"      => $product_link,
                    "image_url"         => $product_image,
                    "size"              => $results_products->size,
                    "manufacturer"      => $product_manufacturer,
                    "description"       => $product_description,
                    "color"             => $results_products->color,
                    "sku"               =>  $results_products->sku,
                    "mpn"               => $results_products->mpn,
                    "instock"           => $results_products->instock,
                    "availability"      => $results_products->availability,
                    "date_added"        => $results_products->date_added
                );
    

    这个 $product_description

    我从 https://jsonlint.com/ (如果我在浏览器中查看,是这样的):

    "manufacturer":"combos","description":"
    \\\\n\tv-\u03bb\u03b1\u03b9\u03bc\u03cc\u03ba\u03bf\u03c8\u03b7<\/li>
    \\\\n\t\u03c0\u03b1\u03c4\u03b9\u03bb\u03ad\u03c4\u03b1 \u03bc\u03b5 \u03ba\u03bf\u03c5\u03bc\u03c0\u03b9\u03ac<\/li>
    \\\\n\t\u03bc\u03b1\u03bd\u03c3\u03ad\u03c4\u03b5\u03c2 \u03ba\u03b1\u03b9 \u03c3\u03c4\u03c1\u03af\u03c6\u03c9\u03bc\u03b1 \u03c3\u03b5 rib \u03c0\u03bb\u03ad\u03be\u03b7<\/li>
    regular fit<\/li>
    

    我读到,当你打开双引号,我需要在同一行的一切。但没什么,我已经试过了。我尝试用空格、转义特殊字符(\n、\r、\t等)替换新行

    1 回复  |  直到 7 年前
        1
  •  1
  •   Alex Tank    7 年前

    尝试在您的应用程序中添加标志 json_encode 命令 json_encode($yourArrayVar, JSON_HEX_QUOT | JSON_HEX_TAG); json_encode($yourArrayVar, JSON_HEX_APOS | JSON_HEX_TAG);