2011-03-04 66 views
-1

我正在使用一个foreach循环和一个var_dump,但从下面的代码var_dump输出一些奇怪的东西。我如何摆脱pre-prended sring()和引号?var_dump输出字符串('**')“数组”

$dir = 'url/dir/dir/';  
$images_array = glob($dir.'*.jpg'); 

$images = array(); 

foreach ($images_array as $image) { 
    $images[] = str_replace($dir, '', $image); 
} 


var_dump(implode(',', $images)); 

输出:

字符串(51) “image1.jpg,image2.jpg,image3.jpg,image4.jpg”

+0

如有疑问,请咨询php.net你使用什么。搜索起来非常简单,只需进入“php.net/var_dump”,就可以进入页面。对于打印,你应该使用回声或打印。如果您是新手,请查看基本手册部分 - 全部都在网站上。 – Incognito 2011-03-04 14:31:49

回答

3

这就是var_dump那样 - 它打印数据类型和长度。如果你想输出只是字符串使用

echo implode(',', $images); 
+0

哈哈谢谢,这是一种享受。这个PHP游戏的新手;) – theorise 2011-03-04 14:29:56

+1

不要相信在调试PHP脚本时浏览器呈现的输出中看到的内容。始终查看页面源代码,其中显示原始未解释的输出。 – 2011-03-04 14:39:02

3

var_dump不输出任何'奇怪'。这就是它应该做的。它用于调试,而不是回显。

只是echo字符串中,你想:你输入变量的

echo implode(',', $images); 
3

var_dump回报,关于它的所有信息。 如果用HTML <pre>

echo '<pre>'; 
var_dump($images); 

使用它,它会打印为您在新的行中的所有元素的数组。

如果:

echo '<pre>'; 
var_dump(implode(',', $images)); 

它返回的字符串。 并且还显示它是一个字符串。

如果你只想打印值,使用echo

echo implode(',', $images);