PDA

View Full Version : حرفه ای: کار کلاس ها



morudi
پنج شنبه 26 اردیبهشت 1392, 17:35 عصر
سلام دوستان کار دقیق این دوتا کلاس چیه؟
DirectoryIterator
RegexIterator
پیشاپش ممنون

SilverLearn
پنج شنبه 26 اردیبهشت 1392, 18:53 عصر
تابع DirectoryIterator برای مشاهده محتویات فایل سیستم ها به کار میره
مثلا می تونی باهاش برنامه ای بنویسی که فایل هایی که در یک دایرکتوری خاص وجود دارند و در تاریخ خاصی ویرایش شدند پاک شوند ...

تابع دومی رو هم نمی دونم .......

abolfazl-z
جمعه 27 اردیبهشت 1392, 00:15 صبح
http://php.net/manual/en/class.regexiterator.php

morudi
جمعه 27 اردیبهشت 1392, 14:33 عصر
متوجه نشدم میشه یکم دقیق تر و علمی تر (با مثال ) توضیح بدبد

morudi
شنبه 28 اردیبهشت 1392, 11:46 صبح
کسی نبود اینو کامل بگه ؟

MMSHFE
شنبه 28 اردیبهشت 1392, 18:56 عصر
بطور کلی PHP دارای چند کلاس Iterator هست که برحسب نوعشون، امکان پیمایش یکسری عناصر رو برای شما فراهم میکنن. یعنی خروجی سازنده این کلاسها، به نوعی یک آرایه است که میتونید با foreach پیمایش کنید. کلاس DirectoryIterator به شما امکان پیمایش فایلهای موجود در سیستم فایل رو میده. به مثال خود سایت PHP دقت کنید:


<?php
//Shows us all files and catalogues in directory except . and ..
foreach (new DirectoryIterator('../moodle') as $fileInfo) {
if($fileInfo->isDot()) {
continue;
}
echo '<p>' . $fileInfo->getFilename() . '</p>' . PHP_EOL;
}
?>

کلاس دوم یعنی RegexIterator به شما امکان فیلترکردن خروجی یک Iterator دیگه رو با کمک الگوهای RegEx میده. مثلاً این کد که باز هم از سایت خود PHP هست رو ببینید:


<?php
$a = new ArrayIterator(array('test1', 'test2', 'alireza', 'test3'));
$i = new RegexIterator($a, '/^(test)(\d+)/', RegexIterator::REPLACE);
$i->replacement = '$2:$1';

print_r(iterator_to_array($i));
/*
Array
(
[0] => 1:test
[1] => 2:test
[2] => 3:test
)
*/
?>

همونطور که میبینید، فقط اون عناصری که توی الگوی RegEx قرار میگرفتن انتخاب شدن و الگوی RegEx بخشهای مختلف اونها رو انتخاب کرده و با کمک عنصر replacement مشخص شده که هر عنصری که انتخاب شده، چطور جایگزین بشه و بعد، عناصر با کمک تابع iterator_to_array بصورت یک آرایه عادی در اومده و نهایتاً با print_r نمایش داده شده.

morudi
شنبه 28 اردیبهشت 1392, 19:51 عصر
RegexIterator خودش چه مقداری رو برمی گردونه که به ارایه تبدیلش کردیم ؟

MMSHFE
شنبه 28 اردیبهشت 1392, 20:09 عصر
یک شئ از نوع Iterator هست که یکسری متدها برای پیمایش داره. به سازنده این کلاس توی مستندات سایت رسمی PHP رجوع کنید.