0

下面的代码返回一个“附加”到帖子的图像数组......

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

//var_dump

var_dump ($excludeImages)

//yields(数组中第 5 项的片段)

array(5){[0]=> object(stdClass)#194 (24) 
        {["ID"]=> int(46) 
         ["guid"]=> string(59) "http://localhost/mysite/wp-content/uploads/avatar.png"}

问题: 如何从模式始终为 ["guid"]=> string(int) "path-to-image" 的任何给定数组项中提取图像文件名(在本例中为 avatar.png)?

4

2 回答 2

0

只需使用基本名称

$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

于 2010-11-14T00:11:17.367 回答
0

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

您的 var_dump 意味着您的数组的第一个元素是具有 ID 和 guid 属性的 stdClass 对象。因此,此代码将检索完整的 guid :

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

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

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

您可以查看此问题以获取有关 stdClass 的更多信息。

于 2010-11-14T00:13:25.037 回答