如何导入多张图片?
How to import multiple image?
现场图片接受这种类型的多图片导入格式:
a:10:{i:0;
a:1:{s:6:"imgurl";s:71:"http://example.com/wp-content/uploads/2015/01/image.jpg";}
i:1;
a:1:{s:6:"imgurl";s:71:"http://example.com/wp-content/uploads/2015/01/image.jpg";}
};
我正在尝试找到一种使用上述输出 return a json_encode 的方法。
在转换为数组格式时我无法弄清楚a:10:{}
。
$arr = array('a' => 10, // <-- I have a problem here what to use
array( 'i' => 0, 'a' => 1,
array('s' => [6, 'imgurl'], // <-- I have a problem here what to use
's' => (71,"http://example.com/wp-content/uploads/2015/01/image.jpg")
)
)
);
我这样做正确吗?
更新:
抱歉,我不能尽快回复。由于我正在研究序列化和反序列化的工作原理。
有点历史,我正在使用 WP All Import- Import XML / CSV WordPress 插件导入 XML 数据。
WP 自定义 post 类型 property
包含存储图像的字段名称 _property_slider_image。将 XML 容器标准拖放到该字段将不起作用。不工作,它没有链接每个 属性.
下载的图像
检查 mysql 数据库后,该字段接受我上面提到的这种类型的语法。老实说,我不知道它是什么。因为我只知道是json_encode和json_decode。这就是为什么我 post 提到 json_encode.
感谢Kiyan。他给了我在哪里看的提示。
现在我不会手动将每个图像映射到每个 属性 记录。
结果:
这是我经过一周研究后的结果。
function sl_output_property_slider(){
$image_url_list = array();
foreach (func_get_args() as $n) {
// get image name
$img_name = get_image_name($n);
// add directory location with the following format
// http://localhost/dev_slrealestate/wp-content/uploads/2015/01/1478_Image.jpeg
$imgurl = 'http://localhost/dev_site/wp-content/uploads/'. date('Y') .'/'. date('m') . '/' . $img_name;
array_push($image_url_list, array('imgurl'=>$imgurl));
}
$serialized_data = serialize($image_url_list);
printf($serialized_data);
}
其中 function get_image_name($url)
- return 图像名称仅来自原始 url 字符串。
示例用法 - 短代码
[sl_output_property_slider({Images[1]/Image[1]/ImageURL[1]},
{Images[1]/Image[2]/ImageURL[1]},{Images[1]/Image[3]/ImageURL[1]},
{Images[1]/Image[4]/ImageURL[1]},{Images[1]/Image[5]/ImageURL[1]},
{Images[1]/Image[6]/ImageURL[1]},{Images[1]/Image[7]/ImageURL[1]},
{Images[1]/Image[8]/ImageURL[1]},{Images[1]/Image[9]/ImageURL[1]},
{Images[1]/Image[10]/ImageURL[1]}
)
]
这不是 json 字符串,您必须使用反序列化函数
正如 Kiyan 所说,您混淆了 json
和 serialize
格式。
您给出的数组表示可以使用以下方法创建:
$arr = array(
array('imgurl' => 'http://example.com/wp-content/uploads/2015/01/image.jpg'),
array('imgurl' => 'http://example.com/wp-content/uploads/2015/01/image.jpg'),
);
$serialized = serialize($arr);
示例:
echo $serialized;
给出:
a:2:{i:0;a:1:{s:6:"imgurl";s:55:"http://example.com/wp-content/uploads/2015/01/image.jpg";}i:1;a:1:{s:6:"imgurl";s:55:"http://example.com/wp-content/uploads/2015/01/image.jpg";}}
现场图片接受这种类型的多图片导入格式:
a:10:{i:0;
a:1:{s:6:"imgurl";s:71:"http://example.com/wp-content/uploads/2015/01/image.jpg";}
i:1;
a:1:{s:6:"imgurl";s:71:"http://example.com/wp-content/uploads/2015/01/image.jpg";}
};
我正在尝试找到一种使用上述输出 return a json_encode 的方法。
在转换为数组格式时我无法弄清楚a:10:{}
。
$arr = array('a' => 10, // <-- I have a problem here what to use
array( 'i' => 0, 'a' => 1,
array('s' => [6, 'imgurl'], // <-- I have a problem here what to use
's' => (71,"http://example.com/wp-content/uploads/2015/01/image.jpg")
)
)
);
我这样做正确吗?
更新:
抱歉,我不能尽快回复。由于我正在研究序列化和反序列化的工作原理。
有点历史,我正在使用 WP All Import- Import XML / CSV WordPress 插件导入 XML 数据。
WP 自定义 post 类型 property
包含存储图像的字段名称 _property_slider_image。将 XML 容器标准拖放到该字段将不起作用。不工作,它没有链接每个 属性.
检查 mysql 数据库后,该字段接受我上面提到的这种类型的语法。老实说,我不知道它是什么。因为我只知道是json_encode和json_decode。这就是为什么我 post 提到 json_encode.
感谢Kiyan。他给了我在哪里看的提示。
现在我不会手动将每个图像映射到每个 属性 记录。
结果:
这是我经过一周研究后的结果。
function sl_output_property_slider(){
$image_url_list = array();
foreach (func_get_args() as $n) {
// get image name
$img_name = get_image_name($n);
// add directory location with the following format
// http://localhost/dev_slrealestate/wp-content/uploads/2015/01/1478_Image.jpeg
$imgurl = 'http://localhost/dev_site/wp-content/uploads/'. date('Y') .'/'. date('m') . '/' . $img_name;
array_push($image_url_list, array('imgurl'=>$imgurl));
}
$serialized_data = serialize($image_url_list);
printf($serialized_data);
}
其中 function get_image_name($url)
- return 图像名称仅来自原始 url 字符串。
示例用法 - 短代码
[sl_output_property_slider({Images[1]/Image[1]/ImageURL[1]},
{Images[1]/Image[2]/ImageURL[1]},{Images[1]/Image[3]/ImageURL[1]},
{Images[1]/Image[4]/ImageURL[1]},{Images[1]/Image[5]/ImageURL[1]},
{Images[1]/Image[6]/ImageURL[1]},{Images[1]/Image[7]/ImageURL[1]},
{Images[1]/Image[8]/ImageURL[1]},{Images[1]/Image[9]/ImageURL[1]},
{Images[1]/Image[10]/ImageURL[1]}
)
]
这不是 json 字符串,您必须使用反序列化函数
正如 Kiyan 所说,您混淆了 json
和 serialize
格式。
您给出的数组表示可以使用以下方法创建:
$arr = array(
array('imgurl' => 'http://example.com/wp-content/uploads/2015/01/image.jpg'),
array('imgurl' => 'http://example.com/wp-content/uploads/2015/01/image.jpg'),
);
$serialized = serialize($arr);
示例:
echo $serialized;
给出:
a:2:{i:0;a:1:{s:6:"imgurl";s:55:"http://example.com/wp-content/uploads/2015/01/image.jpg";}i:1;a:1:{s:6:"imgurl";s:55:"http://example.com/wp-content/uploads/2015/01/image.jpg";}}