PHP-数组循环和base64_encode图像



我有一个多维数组,我想json_encode,但在此之前,我需要base64_encode对应于产品图像的数组。

例如

var_dump($products_results) // outputs
array(18) {
     [0]=>
        array(70) {
               ["product_id"]=> string(4) "9087"
               ["make"]=> string(6) "shinox"
               ["color"]=> string(3) "red"
               ["country"]=> string(3) "usa"
               ["image"]=> string(6201) "����ExifII*��Ducky��Adobed����....."
               ["image_front"]=> string(5201) "��������....."
               ["image_back"]=> string(5201) "��������....."
              .....
     [1]=>
        array(70) {
               ["product_id"]=> string(4) "8999"
               ["make"]=> string(6) "shinox"
               ["color"]=> string(3) "black"
               ["image"]=> string(6201) "����ExifII*��Ducky��Adobed����....."
               ["image_front"]=> string(5201) "��������....."
               ["image_back"]=> string(5201) "��������....."

等等。。。。

在这里,每个数组代表我的sql数据库中的一个产品,其中图像存储为二进制数据,而不是URL路径,以便允许一些离线功能。。。这是我第一次尝试存储图像,当我在这个论坛上读到许多帖子时,我为图像创建了VARBINARY列,现在我需要base64_encode这些图像,然后将其作为对象发送到客户端。

我的问题是如何通过每个产品数组循环到base64_encode,这三个数组的关键字是与图像相关的imageimage_frontimage_back

$JSON_array = array();

$JSON_array["Products"] = $products_results;//包含上面的18个阵列,图像编码为

$JSON_array["specifications"] = $specs_results//发送一些其他东西,无需更改

print json_encode($JSON_array);

诀窍是跟踪数组索引值,以便更新原始值。

foreach ($JSON_array['Products'] as $productIndex => $product)
{
   $JSON_array['Products'][$productIndex]['image'] = base64_encode($product['image']);
   $JSON_array['Products'][$productIndex]['image_front'] = base64_encode($product['image_front']); 
   $JSON_array['Products'][$productIndex]['image_back'] = base64_encode($product['image_back']);      
}

这将使用base64_encode值更新循环外的原始数组。那么您应该能够轻松地json_encode()该数组。

$output = json_encode($JSON_array);

相关内容

  • 没有找到相关文章

最新更新