PDA

View Full Version : سوال: ایجاد تنظیمات برای قالب سایت



hamidhassas
یک شنبه 02 فروردین 1394, 14:14 عصر
من یک پوشه دارم به اسم template و در داخل اون یک سری پوشه هست با نام های مختلف مثلا yellow,red,geen,blue , ... خوب اسم این پوشه ها به صورت خودکار در یک selectbox لیست شدن

میخوام کاری کنم که وقتی اسم پوشه ها داره لیست میشه هر کدوم از پوشه ها که اسمشون برابر با red بود در لیست نشون داده نشه



$path = '../template/' . $name[0];
$results = scandir($path);

foreach ($results as $result) {
if ($result === '.' or $result === '..') continue;

if (is_dir($path . '/' . $result)) {
//code to use if directory
echo '<option>';
print_r($result);
echo '</option>';
}
}

دوم میخوام کاری کنم که اگر کاربر مثلا red رو انتخاب کرد با زدن دکمه حذف کل پوشه red حذف بشه


حالا نمیدونم باید چکار کنم لطفا اگر کدی قرارمیدین تکه تکه برام توضیح بدین بفهمم چی به چیه و یاد بگیرم


پیش پیش ممنون

ostadsho
یک شنبه 02 فروردین 1394, 17:01 عصر
خب اول باید با دستور scandir همه محتویات پوشه رو بخونید،

بعدش اون نقطه و دونقطه ای که توی آرایه بازگردانده شده رو چون نیاز نداریم حذف می کنیم (current directory&parent directory) با استفاده از array_diff.

حالا باید چک کنیم که محتویات دریافت شده از نوع فایل مباشند چون شما فرمودید یک سری پوشه داریم ،دستور is_dir

بعد به ازای هر پوشه یه تگ option می سازیم که value اون هم باید دقیقا نام پوشمون باشه یعنی کلا تا اینجای کار میشه:




<?php


$path = 'temp';
$results = scandir($path);
$results = array_diff($results, array('.', '..'));

?>

<form action="delete_directory.php" method="get">

<select name="folder_name">

<?php

foreach ($results as $result) {

if (is_dir($path . '/' . $result)) {
//if directory not a file

echo '<option value="'.$result.'">'.$result.'</option>';

}

}

?>


</select>


<button>delete</button>

</form>





اما بریم سراغ فایل delete_directory.php که قراره پوشه مورد نظر رو حذف کنه:




<?php

$folder_name=$_GET['folder_name'];

rmdir('temp/'.$folder_name);


?>




دستور rmdir هم که مشخصه برای حذف یه دایرکتوری هستش.

ostadsho
یک شنبه 02 فروردین 1394, 17:02 عصر
البته اگر مطموئنید که همه محتویات پوشه temp از نوع فولدر هستند و نه فایل،دیگه نیاز به شرط is_dir نیست اون رو به خاطر اطمینان نوشتم فقط.