从表单提交名称后,php代码检查目录是否存在,如果目录存在,则从该目录显示图像。但是,如果该目录不存在,则会创建一个新目录。这是问题所在-代码在爬网时工作得很好,但没有将图像存储在指定目录内。问题似乎出在file_put_contents($directory , $image);
部分。下面是完整的代码:
<?php
$images = array();
$directory = 'images '.$_POST["name"];
if (file_exists($directory)) {
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if (preg_match("/\.png$/", $file)) $images[] = $file;
elseif (preg_match("/\.jpg$/", $file)) $images[] = $file;
elseif (preg_match("/\.jpeg$/", $file)) $images[] = $file;
elseif (preg_match("/\.gif$/", $file)) $images[] = $file;
}
shuffle($images);
closedir($handle);
}
?>
<div class="cycle-slideshow" >
<?php
for($i= 0; $i < 3; $i++) {
foreach ( new DirectoryIterator($directory) as $item ) {
if ($item->isFile()) {
$path = $directory . '/' . $item;
echo '<img src="' . $path . '" class="displayed" style="max-width:100%; max-height:460px; position: absolute;
right: 0px; top: 0; bottom: 0; margin: auto; vertical-align: middle; display: inline-block; "
/>';
}
}
}
}
else {
include "simple_html_dom.php";
$html = file_get_html( "https://www.bing.com/images/search?q=barrack%20obama&FORM=HDRSC2" );
$images = $html->find('img');
$image_count = 50; //Enter the amount of images to be shown
$i = 0;
foreach($images as $image){
if($i == $image_count) break;
$i++;
mkdir($directory);
file_put_contents($directory , $image);
}
}
?>
我在做什么错? 任何帮助表示赞赏。谢谢。
答案 0 :(得分:0)
检查目录是否具有写权限,是否要创建新目录,而不是使用写权限创建的目录,这样它将存储您的文件并帮助从目录中检索它。
因为您已经在使用mkdir(),而不是像这样尝试设置权限
mkdir("dirname", 0777);