下面有一个函数,它读取wp-content / uploads的内容并写出它在那里找到的所有图像。
问题是它正在读取博客标题以确定图像路径,当博客标题中有一个点时,就会出现问题
博客标题是abc123.com
网站网址是abc123.com
测试图像文件名是abc123-1.jpg
img标签应该成为:
<img src='http://abc123.com/wp-content/uploads/abc123-1.jpg' />
从下面的函数编写的实际图像标记是:
<img src='http://abc123.com/wp-content/uploads/abc123.com-1.jpg' />
我的问题是,“。com”是如何插入文件名???
的功能如下......
function get_images()
{
global $options;
foreach ($options as $value) {
if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else { $$value['id'] = get_settings( $value['id'] ); }
}
if($cb_custom_images !== "")
{
echo $cb_custom_images;
}
else
{
$dir = 'wp-content/uploads/';
$url = get_bloginfo('url').'/wp-content/uploads/';
$imgs = array();
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if (!is_dir($file) && preg_match("/\.(bmp|jpeg|gif|png|jpg|)$/i", $file))
{
array_push($imgs, $file);
}
}
closedir($dh);
} else {
die('cannot open ' . $dir);
}
foreach ($imgs as $idx=>$img)
{
$class = ($idx == count($imgs) - 1 ? ' class="xlast"' : '');
echo '<img src="' . $url . $img . '" alt="' .$img . '"' . $class . ' />';
}
}
}
答案 0 :(得分:1)
您确定您的测试文件是否已命名为abc123-1.jpg
?我只是将您的代码复制到一个文件中并添加了虚拟脚手架,包括wp-content/uploads/abc123-1.jpg
文件。
我在运行脚本时得到了正确的结果:
% php img.php
<img src="http://abc123.com/wp-content/uploads/abc123-1.jpg" alt="abc123-1.jpg" class="xlast" />
`
答案 1 :(得分:0)
我认为preg_match问题尝试在jpg之后删除字符
答案 2 :(得分:0)
该目录中是否有abc123.com-1.jpg文件?
这可能是问题。
答案 3 :(得分:0)
抱歉这个人,这个功能没有错。我有一个这个文件所依赖的遗留文件是不兼容的。更新该文件后,一切都很顺利。
现在我只需要this one out(假设我在此之后还剩下任何信誉:-) 我们是否会在这里获得调度?