我从数据库中导出了一些条目,它给了我以下JSON:
[
{
"Artist_Title": "17 Hippies",
"Gallery_Image_Filename": "17Hippies-2011-web.jpg"
},
{
"Artist_Title": "17 Hippies",
"Gallery_Image_Filename": "christo.jpg"
},
{
"Artist_Title": "17 Hippies",
"Gallery_Image_Filename": "kiki1.jpg"
},
{
"Artist_Title": "17 Hippies",
"Gallery_Image_Filename": "17-hippies.jpg"
},
{
"Artist_Title": "17 Hippies",
"Gallery_Image_Filename": "Photo1.jpg"
},
{
"Artist_Title": "Ann Savoy Trio",
"Gallery_Image_Filename": "Savoy-Trio-B&W-resize342x.jpg"
},
{
"Artist_Title": "Baghdaddies",
"Gallery_Image_Filename": "Baghdaddies-(Small).JPG"
},
{
"Artist_Title": "Baghdaddies",
"Gallery_Image_Filename": "Baghdaddies2.jpg"
}
]
其中包含与帖子关联的图库图像。我已导出帖子标题(Artist_Title)和图像文件名(Gallery_Image_Filename)。
一个帖子可以有多个图库图像,这里的最终目标是做一个foreach和var转储列表,例如
wget www.[domain].com/images/17Hippies-2011-web.jpg -O 17-hippies-gallery-1.jpg
wget www.[domain].com/images/christo.jpg -O 17-hippies-gallery-2.jpg
wget www.[domain].com/images/kiki1.jpg -O 17-hippies-gallery-3.jpg
wget www.[domain].com/images/17-hippies.jpg -O 17-hippies-gallery-4.jpg
wget www.[domain].com/images/Photo1.jpg -O 17-hippies-gallery-5.jpg
wget www.[domain].com/images/Savoy-Trio-B&W-resize342x.jpg -O ann-savoy-trio-1.jpg
wget www.[domain].com/images/Baghdaddies-(Small).JPG -O baghdaddies-gallery-1.jpg
wget www.[domain].com/images/Baghdaddies2.jpg -O 17-baghdaddies-gallery-2.jpg
所以基本上我正在创建一个图像网址的wget列表以及它们的新文件名。我正在拿帖子标题,消毒它,附加-gallery- [数字],其中数字需要与它找到的Artist_Title的数量相匹配。
我有这个foreach循环,我只需要修改它来添加 - [数字]基于现在的帖子数量
foreach($gallery as $image) {
echo 'wget https://www.accessallareas.info/images/' . $image->Gallery_Image_Filename . ' -O ' . sanitize_title($image->Article_Title) . '-gallery.jpg';
echo '<br>';
}
这可以实现吗?
您可以为每个帖子保存一个计数器并在循环中检查它。
试试这个:
$pCounter = 0; // for Post counter
$artistTitle = '';
foreach($gallery as $image) {
if ($image->Artist_Title !== $artistTitle) {
$pCounter = 0;
}
$counter++;
echo 'wget https://www.accessallareas.info/images/' . $image->Gallery_Image_Filename . ' -O ' . $image->Artist_Title . '-gallery-'. $pCounter . '.jpg';
echo '<br>';
$artistTitle = $image->Artist_Title;
}
注意:
Article_Title
应该是Artist_Title
。json_decode($json);
将JSON转换为对象数组。一切都是可以实现的。
$counter = 0;
$article_title = '';
foreach($gallery as $image) {
if ($image->Article_Title !== $article_title) {
$counter = 0;
}
$counter++;
echo 'wget https://www.accessallareas.info/images/' . $image->Gallery_Image_Filename . ' -O ' . sanitize_title($image->Article_Title) . '-gallery-'. $counter .'.jpg';
echo '<br>';
$article_title = $image->Article_Title;
}