下面的代码返回一系列图像,这些图像“附加”到帖子...

$args = array(
    'post_type' => 'attachment',
    'numberposts' => -1,
    'post_status' => null,
    'post_parent' => 0
); 
$excludeImages = get_posts($args);

// var_dump

var_dump ($excludeImages)

//屈服(阵列中的第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)“通道图像”?

有帮助吗?

解决方案

只需使用Basename即可

$fileName = basename($excludeImages[0]->guid);

编辑:正如上面提到的评论者,我认为您可能需要箭头符号,而不是为“ GUID”索引,如$ ubevudeImages [0] [“ GUID”]。我最初没有注意到它是一个对象。看来您有一系列对象,而不是结构化/嵌套数组。

http://php.net/manual/en/function.basename.php
http://www.php.net/manual/en/function.pathinfo.php

其他提示

STDClass基本上是PHP的默认类(不是基础!)。它没有任何方法或属性,它是一个空的类。它被用作容器。例如,您可以通过将数组施放到对象上来创建此类类。

您的var_dump表示数组的第一个元素是具有ID和GUID属性的STDCLASS对象。因此,此代码将检索完整的GUID:

$path = $excludeImages[0]->guid;

如果您只想检索文件名,则可以使用basename():

echo basename($path); // avatar.png

你可以看到 这个问题 有关STDClass的更多信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top