我有以下问题。在管理面板中,我有一个多图库。用户可以选择多张图片并保存。数据在DB中播放如下:
<br />::nossos_trabalhos_galeria_x::3::/nossos_trabalhos_galeria_x::<br /><br />::nossos_trabalhos_galeria|0|nossos_trabalhos_galeria_x::images/nossos_trabalhos/53/lighthouse.jpg::/nossos_trabalhos_galeria|0|nossos_trabalhos_galeria_x::<br />::nossos_trabalhos_galeria|1|nossos_trabalhos_galeria_x::images/nossos_trabalhos/53/penguins.jpg::/nossos_trabalhos_galeria|1|nossos_trabalhos_galeria_x::<br />::nossos_trabalhos_galeria|2|nossos_trabalhos_galeria_x::images/nossos_trabalhos/53/koala.jpg::/nossos_trabalhos_galeria|2|nossos_trabalhos_galeria_x::<br />
所以做'选择'并抓住结果:
$db = &JFactory::getDBO();
$table = '#__cck_store_form_nossos_trabalhos';
$select_query = "SELECT nossos_trabalhos_galeria_x FROM $table";
$db->setQuery($select_query);
$db->query();
$row = $db->loadRow();
但对我来说最重要的是形象路径。然后我可以通过'爆炸'来区分他的位置:
$r1 = explode('::',$row[0]);
var_dump($r1);
所以我得到了结果:
array (size=17)
0 => string '<br />' (length=6)
1 => string 'nossos_trabalhos_galeria_x' (length=26)
2 => string '3' (length=1)
3 => string '/nossos_trabalhos_galeria_x' (length=27)
4 => string '<br /><br />' (length=12)
5 => string 'nossos_trabalhos_galeria|0|nossos_trabalhos_galeria_x' (length=53)
6 => string 'images/nossos_trabalhos/53/lighthouse.jpg' (length=41)
7 => string '/nossos_trabalhos_galeria|0|nossos_trabalhos_galeria_x' (length=54)
8 => string '<br />' (length=6)
9 => string 'nossos_trabalhos_galeria|1|nossos_trabalhos_galeria_x' (length=53)
10 => string 'images/nossos_trabalhos/53/penguins.jpg' (length=39)
11 => string '/nossos_trabalhos_galeria|1|nossos_trabalhos_galeria_x' (length=54)
12 => string '<br />' (length=6)
13 => string 'nossos_trabalhos_galeria|2|nossos_trabalhos_galeria_x' (length=53)
14 => string 'images/nossos_trabalhos/53/koala.jpg' (length=36)
15 => string '/nossos_trabalhos_galeria|2|nossos_trabalhos_galeria_x' (length=54)
16 => string '<br />' (length=6)
我最大的问题是,如何在阵列中获取图像路径以创建图库?
-----编辑-----
感谢您的回复。以一种非常简单的方式解决了我的问题。我通过名为joomla'getValue'的选项调用了同样的结果,他给我带来了数组stdClass中的所有数据。然后它就足以做一个foreach并召集这个职位。
答案 0 :(得分:0)
您将不得不使用正则表达式来检查给定项目是否为图像URL。如果是,则将其添加到新阵列或使用它做一些事情。
答案 1 :(得分:0)
如果你有多种类型的图像,那么你可以使用以下代码来提取图像网址:
$ext = array("jpg","jpeg","png","gif");
$gallery_url = array_filter(array_map(function($var) use($ext){return in_array(end(explode(".", $var)),$ext)?$var:false;}, $r1));
print_r($gallery_url);
gallery_url是一个只有图片网址的数组
编辑:如果图像是相同的类型,那么:
$gallery_url = array_filter(array_map(function($var){return end(explode(".", $var))=='jpg'?$var:false; },$r1));
答案 2 :(得分:0)
对于初学者来说 - 如果所有图像都是jpeg,那么循环遍历数组并查找以.jpg结尾的所有行(或者图像类型可能是什么)。引用另一个问题:startsWith() and endsWith() functions in PHP