下面的代码返回一个“附加”到帖子的图像数组......
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => 0
);
$excludeImages = get_posts($args);
//的var_dump
var_dump ($excludeImages)
// yield(数组中第一项5的片段)
array(5){[0]=> object(stdClass)#194 (24)
{["ID"]=> int(46)
["guid"]=> string(59) "http://localhost/mysite/wp-content/uploads/avatar.png"}
问题: 如何从任何给定的数组项中提取图像文件名(在本例中为avatar.png),其中模式总是[“guid”] => string(int)“path-to-image”?
答案 0 :(得分:0)
只需使用basename
$fileName = basename($excludeImages[0]->guid);
编辑:作为上面提到的评论者,我认为您可能需要箭头符号而不是像$ excludeImages [0] [“guid”]中的“guid”索引。我最初没有注意到它是一个物体。看来你有一个对象数组,而不是结构化/嵌套数组。
http://php.net/manual/en/function.basename.php
http://www.php.net/manual/en/function.pathinfo.php
答案 1 :(得分:0)
stdClass基本上是PHP的默认类(不是基础!)。它没有任何方法或属性,它是一个空类。它用作容器。例如,您可以通过将数组转换为对象来创建这样的类。
你的var_dump意味着你的数组的第一个元素是一个具有ID和guid属性的stdClass对象。因此,此代码将检索完整的guid:
$path = $excludeImages[0]->guid;
如果您只想检索文件名,可以使用basename():
echo basename($path); // avatar.png
有关stdClass的更多信息,请参阅this question。