PDA

View Full Version : حرفه ای: نمایش اتوماتیک تصاویر از فولدر



رضا قربانی
سه شنبه 01 دی 1394, 21:17 عصر
سلام خدمت همگی دوستان
من یک فولدر دارم که داخلش مثلا 10 تا تصویر هست با نام های مختلف

با php می خوام این تصاویر از فولدر واکشی و نمایش داده بشه ، دقت داشته باشید هیچ بانکی وجود نداره .

امیدوارم تونسته باشم منظورمو درست بهتون برسونم.

اگر چنین کاری رو می تونم انجام بدم ممنون میشم راهنماییم کنید .

با تشکر

arta.nasiri
سه شنبه 01 دی 1394, 23:04 عصر
سلام

با استفاده از تابع readdir میتونید کل فایلها و دایرکتوری های موجود در یک دایرکتوری رو بدست بیارید. حالا اینکه کدوم فایلها رو میخواهید نمایش بدید بستگی به شرطی که قرار میدید داره.


$ext = ['jpeg', 'jpg', 'gif'];
if ($handle = opendir('.'))
{
while (false !== ($entry = readdir($handle)))
{
if (isset(pathinfo($entry)['extension']) and in_array(pathinfo($entry)['extension'], $ext))
{
echo "<br>$entry\n";
}
}
closedir($handle);
}

رضا قربانی
پنج شنبه 03 دی 1394, 16:04 عصر
ممنون از دوست خوبم .
من با کمکت یه کم کد سورس رو کامل تر کردم و گفتم اینجا قرار بدم تا بچه ها خواستن استفاده کنن :
با لیست نام فایل های فارسی هم سازگار شده .


if ($handle = opendir('.'))
{
$ext = ['jpeg', 'jpg', 'gif', 'png'];
while (false !== ($entry = readdir($handle)))
{
if (isset(pathinfo($entry)['extension']) and in_array(pathinfo($entry)['extension'], $ext))
{
echo'<img src="'.iconv('windows-1256', 'utf-8',$entry).'" width="200" > <br />';
}
}
closedir($handle);
}




یه کد ساده تر هم تونستم پیدا کنم که بدردتون میخوره منتها با فارسی مشکل داره:



$images = glob("*.jpg");
foreach($images as $image)
{
echo $image;
}

موفق و پیروز باشید

رضا قربانی
پنج شنبه 03 دی 1394, 21:22 عصر
بچه ها در پست قبلی من مشکل نمایش فارسی فایل هارو برطرف کردم منتها وقتی نام همون فایل در src تگ IMG قرار میدم تصویری که نامش فارسی هست رو نمایش نمیده ، حتی من در مرورگر نمایش کد سورس رو میزنم همه چی درسته .

آیا مشکل از localhost هست یا کد ؟

کسی هست بدونه چطوری میشه این مشکل رو حل کرد ؟

مهرداد سیف زاده
پنج شنبه 03 دی 1394, 21:39 عصر
فک کنم نام فارسی میتونه باشه با space مشکل داره


$path=str_replace(" ", '%20', $path1);

با این مسیر یه تغییر بده ببین درست میشه

رضا قربانی
شنبه 05 دی 1394, 10:39 صبح
فک کنم نام فارسی میتونه باشه با space مشکل داره


$path=str_replace(" ", '%20', $path1);

با این مسیر یه تغییر بده ببین درست میشه
شما اولین سورس پست شماره 3 رو کپی کنید و چند تا عکس هم بندازید توی فولدری که قراره تست بگیرید . نام عکساتون رو فارسی-انگلیسی-با فاصله - بی فاصله تست بگیرید . شاید اصلا مشکل local باشه . یه تست بگیر :افسرده::ناراحت:

مهرداد سیف زاده
شنبه 05 دی 1394, 11:41 صبح
مشکل از iconv هست. فک کنم نیازی نباشه. البته من روی لینوکس تست کردم. و فک کنم روی ویندوز بودید نیاز به iconv بوده
به هر حال روی سرور هم یه تست بگیرید و شاید نیازی نباشه.
و اگر هم نیاز بود بهتره ابتدا detect بشه فرمت فعلی چی هست و بعد به فرمت دیگه تبدیل بشه. مثلا اگر encoding base بود دیگه نره طرف iconv


<?php


if ($handle = opendir('.')) {
$ext = ['jpeg', 'jpg', 'gif', 'png'];
while (false !== ($entry = readdir($handle))) {
if (isset(pathinfo($entry)['extension']) and in_array(pathinfo($entry)['extension'], $ext)) {
echo '<img src="' . $entry . '" width="200" > ';
}
}
closedir($handle);
}

مهرداد سیف زاده
شنبه 05 دی 1394, 11:49 صبح
فایلهای تست
137679

رضا قربانی
شنبه 05 دی 1394, 12:17 عصر
فایلهای تست
137679
الآن این چیزی که دادی دقیقا مثل قبل هست . چیزی تغییر نکرد . تصاویر فارسی برای من نشون نمیده :متفکر:
آیا شما با فارسی مشکلی نداری ؟ :متفکر:

مهرداد سیف زاده
شنبه 05 دی 1394, 12:41 عصر
الآن این چیزی که دادی دقیقا مثل قبل هست . چیزی تغییر نکرد . تصاویر فارسی برای من نشون نمیده :متفکر:
آیا شما با فارسی مشکلی نداری ؟ :متفکر:
من با فارسی هیچ مشکلی ندارم. البته من که نه، لینوکس مشکلی نداره
احتمالا داری روی ویندوز تست میگیری

hamedarian2009
شنبه 05 دی 1394, 13:28 عصر
این کد کوتاهتره و روی لینوکس که مشکلی با فارسی نداره اگه سرورتون لینوکسی هست مشکلی ندارید


$imgs = glob('images/*.jpg');

foreach ($imgs as $img) {
echo $img.'<br />'.PHP_EOL;
}

رضا قربانی
شنبه 05 دی 1394, 19:41 عصر
این کد کوتاهتره و روی لینوکس که مشکلی با فارسی نداره اگه سرورتون لینوکسی هست مشکلی ندارید


$imgs = glob('images/*.jpg');

foreach ($imgs as $img) {
echo $img.'<br />'.PHP_EOL;
}


همین سورس رو من در پست شماره 3 همین تاپیک برای دوستان گذاشتم ،
به احتمال 70 درصد مشکل وب سرور ماست ، یه تنظیم خواستی فکر کنم باید انجام بدیم

رضا قربانی
شنبه 05 دی 1394, 20:32 عصر
مشکل حل شد البته فقط بر روی هاست با این کد ، یعنی همون کد قبلی :


<?php


$ext = ['jpeg', 'jpg', 'gif', 'png'];

if ($handle = opendir('.'))
{
while (false !== ($entry = readdir($handle)))
{
if (isset(pathinfo($entry)['extension']) and in_array(pathinfo($entry)['extension'], $ext))
{
echo $entry;
echo'<img src="./'.$entry.'" width="200" > <br />';

}
}
closedir($handle);
}



?>
منتها هنوز روی لوکال این مشکل وجود داره

رضا قربانی
شنبه 05 دی 1394, 20:38 عصر
من با فارسی هیچ مشکلی ندارم. البته من که نه، لینوکس مشکلی نداره
احتمالا داری روی ویندوز تست میگیری
چی کار کنم روی ویندوز درست نمایش بده ؟ ( زمپ )

مهرداد سیف زاده
شنبه 05 دی 1394, 22:01 عصر
چی کار کنم روی ویندوز درست نمایش بده ؟ ( زمپ )
نمیشه این مورد رو روی لینوکس تست بگیرید
چون به نظرم ارزش نداره وقت بزارید روی ویندوز