![]() |
مرجع توابع PHP - نسخهی قابل چاپ +- انجمن های تخصصی علوم رایانه و هنرهای دیجیتال (https://www.forum.cgaria.com) +-- انجمن: رایانه (https://www.forum.cgaria.com/forum-236.html) +--- انجمن: برنامه نویسی | طراحی وب (https://www.forum.cgaria.com/forum-22.html) +---- انجمن: برنامه نویسی (https://www.forum.cgaria.com/forum-26.html) +----- انجمن: پی اچ پی | PHP (https://www.forum.cgaria.com/forum-89.html) +----- موضوع: مرجع توابع PHP (/thread-430.html) |
مرجع توابع PHP - Mohsen Omidvar - 01-01-2014 در سایتها وظیفه ذخیره اطلاعات بر عهده دیتابیس میباشد.برای ذخیره کاربران ، مطالب سایت ، تعداد بازدید ها و …. از دیبتایس استفاده میکنیم.اما گاهی نیاز داریم تا برای ذخیره تنظیمات یا برای مدیریت عکسهای یک گالری عکس با فایلها سرو کار داشته باشیم. خوشبختانه پی اچ پی PHP توابع زیادی رو برای مدیریت فایلها ارایه داده که کار رو برای برنامه نویسها راحت کرده در این سری از آموزشها خواهیم دید چگونه میتونیم فایلها رو مدیریت کنیم.مثل دستکاری محتویات فایلها متنی ، کپی فایلها و پوشه ها ، لیست کردن محتویات پوشه ها و … رو آموزش میبینید. مدیریت فایلها در PHP قسمت اول : خواندن و نوشتن - Mohsen Omidvar - 01-01-2014 در ابتدا باید بگم که دو نوع فایل داریم.یک فایل با فرمت ascci و یک نوع فایل باینری. فایلهایی با قالب متنی از نوع اسکی هستند.مثل .txt , html , asp , .php این نوع فایلها بر پایه متن استوار هستند. اما فایلهای باینری بر پایه داده ها استوارند مثل .jpg , mp3 , .gif در کل در فایلهای باینری با نوع خاصی از ذخیره سازی اطلاعات سرو کار داریم. برای مدیریت این دو نوع فایل توابع زیادی معرفی شده که در این قسمت از آموزش نحوه دستکاری اطلاعات فایلهای متنی رو خواهیم دید. تابع : File_get_contents این تابع برای خواندن محتویات یک فایل به کار میره. کد php: $txt = file_get_contents('readme.txt'); کد php: file_put_contents($filePath , $data); این تابع محتویات یک فایل متنی را خوانده و خطوط فایل رو به صورت آرایه بر میگردونه. کد php: $fileContent = file('readme.txt'); تعدادی از توابع بسیار کاربردی در PHP با پیشوند f معرفی شدند که برای مدیریت فایلها به کار میرن. فایلهایی مثل : fopen fwrite fread fclose در قسمت اول این آموزش به نحوه خواندن محتویات فایل به وسیله این توابع میپردازیم . تابع Fopen ابن تابع آدرس یک فایل را میگیره و یک اشاره گر رو برای استفاده در بقیه توابع برگشت میده. کد php: $file = fopen("test.txt","r"); تابع Fclose بعد از تمام شدن کار ما با فایل مورد نظر باید با استفاده از این تابع اتصال به فایل رو ببندیم. کد php: fclose($file); محتویات فایل رو به صورت رشته برگشت میده. کد php: fread($file,filesize("test.txt")); تابع filesize تعداد بایتهای یک فایل رو برمیگردونه که در مثال به این معنیه که تمام محتویات فایل مورد نظر با استفاده از تابع fread برگشت داده بشه. تابع Fgets این تابع یک خط از فایل رو برمیگردونه. کد php: echo fgets($file); کد php: <?php در هر بار اجرای حلقه با تابع feof چک میکنیم که به انتهای فایل رسیدیم یا خیر. تابع Fgetc این تابع یک کاراکتر از فایل رو برمیگردونه کد php: echo fgetc($file); کد php: <?php تابع Fwrite با این تابع هم میتونید داخل فایل بنویسید. کد php: fwrite($file , "1987.ir"); کد php: <?php خب در این قسمت آموزش با نحوه نوشتن و خواندن محتویات فایلها آشنا شدیم.به امید خدا در قسمت بعد به ادامه آموزش مدیریت فایلها در PHP میپردازیم. مدیریت فایلها در PHP قسمت دوم : مدیریت فایلها و پوشه ها - Mohsen Omidvar - 01-01-2014 در قسمت قبل با نحوه خواندن و نوشتن محتویات فایلهای متنی در PHP آشنا شدید.در این این قسمت به مدیریت فایلها و پوشه ها میپردازیم. مباحثی که در این بخش خواهیم آموخت : لیست کردن فایلها و پوشه ها ایجاد پوشه جدید کپی کردن فایلها و پوشه ها حذف فایلها چک کردن وجود یک فایل یا پوشه برای دسترسی به محتویات یک پوشه چندتا راه وجود داره.در زیر با این راه ها آشنا میشید. تابع Opendir این تابع آدرس یک پوشه رو دریافت میکنه و یک اشاره گر رو برگشت میده که از این اشاره گر میتونیم در تابع readdir استفاده کنیم : کد php: <?php برای تشخیص اینکه آیا اشاره گر روی یک فایل قرار داره یا یک پوشه از توابع is_file و is_dir استفاده میکنیم. تابع Dir خروجی این تابع یک شیء از کلاس Directory میباشد و با استفاده از متدهای این کلاس میتونیم محتویات پوشه رو پیمایش کنیم کد php: $location = './'; تابع Glob تابع glob() برای پیدا کردن فایلها با استفاده از یک الگوی خاص میتونه به شما کمک کنه : کد php: view sourceprint? کد php: $files = glob('*.{php,txt}', GLOB_BRACE); کد php: $files = glob('../images/a*.jpg'); کد php: $files = glob('../images/a*.jpg'); برای کپی کردن فایلها از یک مکان به مکان دیگه از تابع copy استفاده میکنیم : کد php: <?php اگر هم خطایی در هنگام کپی خطایی رخ بده این تابع مقدار false برمیگردونه. حذف فایل برای حذف فایل هم میتونید از تابع unlink استفاده کنید : کد php: unlink('test.html'); برای چک کردن وجود یک فایل از تابع file_exists استفاده میشه. کد php: if(file_exists('test.jpg')) { کد php: <?php کد php: view sourceprint? مدیریت فایلها در PHP قسمت سوم : پروتکل FTP - Mohsen Omidvar - 01-01-2014 در ادامه میتونید آموزش کار با پروتکل FTP در PHP رو مشاهده کنید. FTP چیست؟ FTP یا File Transfer Protocol یک پروتکل انتقال فایل بر پایه TCP/IP می باشد.از این پروتکل برای انتقال فایل ها بین هاست استفاده میشود.در این قسمت با هم یک کلاس کار با اف تی پیFTP خواهیم ساخت. قبل از اینکه شروع به ساخت کلاس کار با FTP کنیم نگاه کلی به کار این کلاس می اندازیم : اتصال به سرور ساخت پوشه روی سرور آپلود فایل تغییر مسیر لیست کردن اطلاعات یک پوشه خاص دانلود فایل چه زمانی باید از FTP استفاده کنیم ؟ استفاده از FTP کاربردهای زیادی دارد. اما شاید بیشترین کاربردهای این پروتکل موارد زیر باشد : ساخت یک گالری تصاویر برای سایت و آپلود عکسها توسط کاربر پشتیبان گیری از اطلاعات و محتویات سایت و دیتابیس مرحله اول : آماده کردن مقدمات در این مرحله ما دو فایل با نامهای index.php و ftp_class.php خواهیم ساخت. فایل Index.php صفحه اصلی ماست.جایی که از کلاس یک شیء ایجاد کرده و متدهای مورد نظر را فراخوانی میکنیم. فایل ftp_class.php فایلی است که کلاس کار با FTP را در آن خواهیم نوشت. مرحله دوم : ساخت کلاس یکی از مزیتهای برنامه نویسی شیء گرا این است که میتوان از کدهای نوشته شده در آینده نیز استفاده کرد.برای همین در این آموزش از برنامه نویسی شیء گرا کمک خواهیم گرفت. حالا فایل ftp_class.php را باز کرده و کدهای زیر را داخل فایل مینویسیم. کد php: class FTPClient با استفاده از کلمه کلیدی class یک کلاس ایجاد کردیم.داخل این کلاس یک تابع (متد) قرار دارد با نام __construct. این متد ، متد سازنده نام دارد.هنگامی که از کلاس FTPClient یک شیء ایجاد می کنیم این تابع به صورت خودکار اجرا میشود. نکته : نام متد construct با دو زیرخط (underline) شروع میشود. مرحله سوم : متغیرهای کلاس در این مرحله متغیرهای مورد نیاز کلاس را ایجاد میکنیم. کد php: private $connectionId; $connectionId متغیری است که رشته اتصال را نگهداری میکند. $loginOk هنگامی که اتصال ما به سرور موفقیت آمیز بود true میشود. $messageArray آرایه ای که پیغام ها را نگهداری میکند. مرحله چهارم : ذخیره سازی پیغام ها در داخل هر متد ما متد logMessage را فراخوانی میکنیم.این متد وظیفه ذخیره پیغام های ایجاد شده به وسیله کلاس مارا دارد.بنابراین کاربر میتواند از روند اجرای کار در جریان قرار گیرد. کدهای زیر را به کلاس FTPClient اضافه کنید : private function logMessage($message) { $this->messageArray[] = $message; } به دلیل اینکه متغیر $messageArray یکی از اعضای کلاس است با استفاده از کلمه کلیدی $this-> به آن دسترسی پیدا میکنیم. برای برگشت دادن اطلاعات از متد زیر استفاده میکنیم. کدهای زیر را نیز به کلاس اضافه کنید : کد php: public function getMessages() مرحله پنجم : اتصال به سرور در این مرحله متد connect را در کلاس خواهیم نوشت. این متد برای اتصال به سرور به کار می آید : کد php: public function connect ($server, $ftpUser, $ftpPassword, $isPassive = false) اولین دستور یک اتصال FTP را ایجاد میکند.اطلاعات این اتصال را درمتغیر $connectionId ذخیره میکنیم. دستور ftp_login برای ورود به سرور استفاده میشود.پارامتر اول اطلاعات سرورمورد نظر($connectionId) ، پارامتر دوم نام کاربری و پارامتر سوم این تابع رمز عبور برای ورود به سرور می باشد. Passive Ftp یک نوع امن تر انتقال اطلاعات در پروتکل FTP است.به هر حال با استفاده از دستور ftp_pasv میتوانید این قابلیت را فعال یا غیر فعال کنید. سپس در دستور if از صحت اتصال به سرور با خبر میشویم.در هر صورت با استفاده از تابع logMessage نتیجه این اتصال را ذخیره میکنیم. مرحله ششم : آزمایش اتصال تا این مرحله از کار ما کلاسی نوشتیم که یک تابع برای اتصال به سرور دارد.برای آزمایش از عملکرد این کلاس کدهای زیر را به فایل index.php اضافه کنید. کد php: // *** Define your host, username, and password سپس با استفاده از دستور include فایل ftp_class.php را به صفحه index.php وارد کردیم تا بتوانیم از کلاس FTPClient در فایل index.php استفاده کنیم. در خط بعد با استفاده از کلمه کلیدی new یک شیء از کلاس FTPClient ساختیم و در متغیر $ftpObj قرار دادیم. در انتها متد( تابع ) connect را از کلاس FTPClient فراخوانی کرده و نام سرور ، نام کاربری و رمزعبور را به این تابع ارسال کردیم. مرحله ششم بخش دوم : مشاهده خروجی در این مرحله کدهای قسمت قبل را کمی تغییر میدهیم. کد php: // *** Connect در کلاس FTPClient دو تابع برای مدیریت پیغام ها ایجاد کردیم.در صورتی که اتصال با سرور با موفقیت انجام نشد میتوانیم از دستور زیر برای نمایش پیغام مورد نظر استفاده کنیم. کد php: // *** Connect خیلی خب، الان زمانش رسیده است که توابع کاربردی را اضافه کنیم.اولین متدی که اضافه خواهیم کرد متد makeDir میباشد. این متد یک پوشه روی سرور میسازد. این متد یک پارامتر میگیرد که مسیر و نام پوشه مورد نظر است.قسمت مهم این متد ، تابع ftp_mkdir میباشد که دو پارامتر میگیرد.پارمتر اول رشته اتصال و پارامتر دوم مسیر و نام پوشه است. کدهای زیر را به فایل ftp_class.php اضافه کنید: کد php: public function makeDir($directory) کد php: $dir = 'photos'; ادامه این بحث رو با اضافه کردن تابعی برای آپلود فایل روی سرور دنبال میکنیم. زمانی که بخواهیم یک فایل را روی سرور آپلود کنیم نیاز داریم تا نوع فایل را تشخیص دهیم( باینری یا اسکی). به طور ساده درصورتی که یک فایل متنی را آپلود کنیم این فایل از نوع ascci و در بقیه موارد نوع فایل Binary خواهد بود. برای فایلهای ascii یک آرایه می سازیم و پسوند فایلهای متنی را داخل این آرایه ذخیره میکنیم. کد php: $asciiArray = array(‘txt’,’csv’); برای فهمیدن پسوند فایل از تابع explode استفاده میکنیم : کد php: $extension = end(explode(‘.’ , $file)); متد زیر را به کلاس FTPClient اضافه کنید : کد php: public function uploadFile ($fileFrom, $fileTo) سپس با دستور ftp_put اقدام به انتقال فایل به سرور کردیم.اگر انتقال با موفقیت انجام نشود تابع uploadFile مقدار false را بر میگرداند. برای استفاده از این متد در فایل index.php به صورت زیر عمل میکنیم : کد php: $fileFrom = 'zoe.jpg'; برای حرکت بین پوشه های ساخته شده متد زیر را به کلاس FTPClient اضافه میکنیم : کد php: public function changeDir($directory) مرحله دهم : لیست فایلها حال برای نمایش لیست فایلهای موجود روی سرور متد getDirListing را به کلاس FTPClient اضافه میکنیم.این متد لیست فایلها و پوشه های سرور را به صورت یک آرایه بر میگرداند : کد php: public function getDirListing($directory = '.', $parameters = '-la') $parameter : این پارامتر به صورت پیش فرض ‘-la’ را در خودش جای داده. ‘-la’ یک دستور لینوکس برای نمایش اطلاعات بیشتری در مورد دایرکتوری مورد نظر میدهد. برای نمایش لیست فایلها در فایل index.php به صورت زیر عمل کنید : کد php: view sourceprint? توابع کار با آرایه ها در PHP - Mohsen Omidvar - 01-01-2014 در این بخش در مورد توابع کار با آرایه ها حرف میزنیم.سعی میکنم مختصر و مفید در مورد همه توابعی که مربوط به آرایه ها هستن توضیح بدم. Array_change_key_case(Array,Case) این تابع تمام کلید های داخل آرایه رو به حروف بزرگ یا کوچک تبدیل میکنه. پارامتر اول این تابع یک ارایه میگیره و پارامتر دوم CASE_LOWER برای تبدیل به حروف کوچک و CASE_UPPER برای تبدیل کلیدها به حروف کوچک استفاده میشن. مثال : کد php: $input_array = array("FirSt" => 1, "SecOnd" => 4); خروجی Array ( [FIRST] => 1 [SECOND] => 4 ) مثال ۲ : کد php: $arr = array('first'=>'Apple','Second'=>'orange'); Array ( [FIRST] => Apple [SECOND] => orange ) در مثال دوم مشاهده میکنید که فقط کلیدهای آرایه به حروف بزرگ تبدیل شدند. کد php: Array Array_combine ( Array , Array ) این تابع دو آرایه رو به یک آرایه تبدیل مبکنه.به این صورت که آرایه ای که در پارامتر اول بهش میدیم به عنوان کلید و آرایه پارامتر دوم به عنوان مقادیر آرایه جدید در نظر گرفته میشن. مثال : کد php: $a = array('green', 'red', 'yellow'); Array ( [green] => avocado [red] => apple [yellow] => banana ) میبینید که تمام مقادیر آرایه اول به عنوان کلید و تمام مقادیر آرایه دوم به عنوان مقدار آرایه جدید در نظر گرفته شدن. در صورتی که تعداد عناصر آرایه اول با آرایه دوم برابر نباشه FALSE برگشت داده میشه. Array Array_count_values ( Array ) تعداد تکرار کلیدهای یک آرایه رو به صورت یک آرایه انجمنی برمیگردونه. مثال : کد php: $array = array(1, "hello", 1, "world", "hello"); Array ( [1] => 2 [hello] => 2 [world] => 1 ) در آرایه $array عدد ۱ دوبار تکرار شده ، hello هم دوبار تکرار شده و world یک بار تکرار شده.خروجی این تابع هم به همین صورت تعداد مقادیر تکرار شده در آرایه رو برمیگردونه. Array_diff(Array1,Array2,Array3,…) با استفاده از این تابع میتونید یک ارایه رو با چند آرایه دیگه مقایسه کنید.در این تابع مقادیر(values) آرایه اول با مقادیر آرایه های بعدی مقابسه میشه و value هایی که در آرایه اول باشه اما در آرایه های بعدی نباشه برگشت داده میشه. کد php: $a1=array(0=>"Cat",1=>"Dog",2=>"Horse"); Array ( [0] => Cat ) Array_diff_assoc($Array1,$Array2,$Array3,…) مقایسه کلیدها و مقادیر دو یا چند آرایه.کلیدها و مقادیر آرایه اول با بقیه آرایه ها مقایسه میشن و در صورتی که در یک کلید و مقدار در آرایه اول بود اما در بقیه ارایه ها نبود برگشت داده میشه. کد php: $a1=array(0=>"Cat",1=>"Dog",2=>"Horse"); Array ( [0] => Cat [2] => Horse ) Array_diff_key(Array1 , Array2,…) مقادیر و کلیدهای یک یا چند آرایه رو با بقیه آرایه ها مقایسه میکنه و درصورتی که کلیدی در آرایه اول بود اما در بقیه ارایه ها نبود برگشت داده میشه. 1 $a1=array(0=>"Cat",1=>"Dog",2=>"Horse"); 2 $a2=array(2=>"Bird",3=>"Rat",4=>"Fish"); 3 $a3=array(5=>"Horse",6=>"Dog",7=>"Bird"); 4 print_r(array_diff_key($a1,$a2,$a3)); خروجی Array ( [0] => Cat [1] => Dog ) Array_fill(Start , Number , Value) تابعی برای پر کردن یک آرایه. پارامتر اول عدد شروع کلید آرایه.پارامتر دوم تعداد عناصری که باید به آرایه اضافه بشه و پارمتر سوم مقداری که باید به آرایه داده بشه. کد php: $a=array_fill(2,3,"Dog"); Array ( [2] => Dog [3] => Dog [4] => Dog ) کلید ارایه از ۲ شروع شده و ۳ عنصر به آرایه اضافه شده با مقدار “Dog” Array_flip() این تابع جای کلیدها و مقادیر رو عوض میکنه. کد php: $a=array(0=>"Dog",1=>"Cat",2=>"Horse"); Array ( [Dog] => 0 [Cat] => 1 [Horse] => 2 ) Array_key_exists(Key , Array) این تابع چک میکنه که آیا یک کلید خاص در آرایه وجود داره یا نه .پارامتر اول کلید رو میگیره و پارامتر دوم آرایه کد php: $a=array("a"=>"Dog","b"=>"Cat"); Array_keys(Array) تمام کلیدهای آرایه رو به صورت یک آرایه بر میگردونه. کد php: $ar = array('a'=>'Dog','b'=>'cat','c'=>'horse'); Array_map(Function , Array1 , Array2 , …) این تابع هر مقدار از آرایه رو به یک تابع ارسال میکنه و نتیجه تابع رو به صورت یک آرایه بر میگردونه. مثال : کد php: function sqr($v) Array ( [0] => 4 [1] => 9 [2] => 16 [3] => 25 [4] => 36 ) در صورتی که نیاز به فراخوانی متد یک کلاس در تابع array_map باشیم پارامتر اول رو به صورت یک آرایه تعریف میکنیم که مقدار اول آرایه نام کلاس ومقدار دوم نام تابع مورد نظر است : کد php: class foo{ Array_merg(Array1 , Array2 , …) ادغام دو یا چند آرایه باهم. $a1=array("a"=>"Horse","b"=>"Dog"); $a2=array("c"=>"Cow","b"=>"Cat"); print_r(array_merge($a1,$a2)); خروجی : Array ( [a] => Horse => Cat => Cow ) اگر کلید همنام در آرایه ها وجود داشته باشه کلید و مقدار آخرین آرایه در آرایه جدید قرار میگیره . [b]Array_pop(Array) آخرین عنصر آرایه رو حذف میکنه . کد php: $a=array("Dog","Cat","Horse"); کد php: $a=array(5,5); Array_push(Array , Value1,Value2,…) یک یا چند مقدار جدید رو به انتهای آرایه اضافه میکنه. $a=array("Dog","Cat"); array_push($a,"Horse","Bird"); print_r($a); خروجی Array ( [0] => Dog [1] => Cat [2] => Horse [3] => Bird ) Array_rand(Array ,Number) به صورت تصادفی یک کلید از آرایه رو بر میگردونه.در قسمت number اگر عددی قرار داشته باشه به همون تعداد کلید های تصادفی از آرایه برگشت داده میشه . کد php: $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse"); Array ( [0] => c [1] => b ) Array_reduce(Array , Function , Initial) این تابع مقادیر یک آرایه رو به یک تابع از قبل تعریف شده ارسال میکنه و نتیجه رو به صورت string (رشته) برمیگردونه. initial یک مقدار جدا برای ارسال به آرایه است. کد php: function myfunction($v1,$v2) Array_revers(Array , Preserve) برای عکس کردن یک آرایه از این تابع استفاده میشه خروجی Array ( => Horse => Cat [a] => Dog ) [b]Array_search(Value , Array , Restrict) جستجو در بین مقادیر آرایه و برگشت دادن کلید . strict : اگر true باشه بین '۵' و ۵ فرق قائل میشه.به صورت پیش فرض false کد php: $a=array("a"=>"5","b"=>5,"c"=>"5"); عنصر اول از آرایه رو حذف و برگشت میده . کد php: $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse"); قسمتی از آرایه رو برمیگردونه . کد php: $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); Array ( [0] => Cat [1] => Horse ) Array_splice(Array, Start, Length, Array) قسمتهایی از آرایه رو حذف میکنه و با عناصر جدید جایگزین میکنه.و یک آرایه جدید برمیگردونه. کد php: $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird ) Array_sum(Array) جمع تمام مقادیر آرایه رو بر میگردونه. کد php: $a=array(0=>"5",1=>"15",2=>"25"); مقادیر (values) مشابه رو از آرایه حذف میکنه.در صورتی که مقادیر مشابه وجود داشته باشن اولین مقدار نگه داشته میشه و بقیه مقادیر مشابه حذف میشن. کد php: $a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat"); Array ( [a] => Cat => Dog ) [b]Array_values(Array) تمام مقادیر(values) یک آرایه رو به صورت یک آرایه جدید برمیگردونه. کد php: $a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse"); Array ( [0] => Cat [1] => Dog [2] => Horse ) Array_walk(Array,Function ,Parameter…) تمام مقادیر آرایه رو به یک تابع از پیش تعریف شده ارسال میکنه.(مانند تابع array_map) .پارامترهای ورودی تابع تعریف شده کلیدها و مقادیر آرایه هستند. کد php: function myfunction($value,$key) The key a has the value Cat The key b has the value Dog The key c has the value Horse Count(Array) تعداد عناصر آرایه رو بر میگردونه. کد php: $people = array("Peter", "Joe", "Glenn", "Cleveland"); مقدار فعلی یک آرایه رو بر میگردونه. کد php: $people = array("Peter", "Joe", "Glenn", "Cleveland"); آخرین مقدار آرایه رو بر میگردونه. کد php: <pre class="brush: php; gutter: true"> Peter Cleveland Extract(Array, Extract_rules,Prefix) این تابع یک آرایه انجمنی رو به عنوان اولین پارامتر میگیره و کلیدهای آرایه رو به متغیر تبدیل میکنه. کلیدهای آرایه نام متغیر و مقادیر کلیدها به مقدار متغیر تبدیل میشن. کد php: $my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse"); - EXTR_OVERWRITE : اگر متغیر از قبل وجود داشته باشه از بین میره و مقدار جدید داخلش قرار میگیره - EXTR_SKIP : اگر متغیراز قبل وجود داشته باشه جایگزین نمیشه - EXTR_PREFIX_SAME : درصورت همنام بودن یک پیشوند به متغیر اضافه میشه. - EXTR_PREFIX_ALL : به همه متغیرها یک پیشوند اختصاص داده میشه - EXTR_PREFIX_INVALID : فقط به کلیدهایی که نام مجاز برای متغیر شدن ندارن یا کلیدهای عددی یک پیشوند اضافه میشه. - EXTR_IF_EXISTS : فقط اگر متغیر وجود داشته باشه جایگزین میشه - EXTR_PREFIX_IF_EXISTS : در صورتی که متغیر از قبل موجود باشه یک پیشوند به متغیر جدید اضافه میشه. - EXTR_REFS : متغیرها رو به صورت reference میسازه prefix : اگر EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS استفاده بشه پیشوندی که در این قسمت مشخص میشه به متغیر ها داده میشه. کد php: $a = 'Original'; چک میکنه که آبا مقدار “search” در آرایه وجود داره یا نه.اگر type برابر با true باشه نوع داده هم چک میشه. کد php: $people = array("Peter", "Joe", "Glenn", "Cleveland", 23); تابع next اشاره گر رو به عنصر بعدی آرایه حرکت میده و مقدار عنصر بعدی رو به خروجی میفرسته. کد php: <pre class="brush: php; gutter: true"> Peter Joe Prev(Array) اشاره گر رو به عنصر قبلی آرایه جرکت میده و به خروجی میفرسته کد php: $people = array("Peter", "Joe", "Glenn", "Cleveland"); Peter Joe Peter Range(Low,High,Step) تابع range یک آرایه میسازه با بازه ای از داده ها. low : کمترین مقدار high : بیشترین مقدار step : مقدار زیاد شدن از کم به زیاد رو مشخص میکنه. کد php: $number = range(0,5); Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) Reset(Array) انتقال اشاره گر به اولین عنصر آرایه. کد php: $people = array("Peter", "Joe", "Glenn", "Cleveland"); Peter Joe Peter Shuffle(Array) نحوه قرار گیری عناصر داخل آرایه رو به صورت تصادفی تغییر میده و کلیدهای جدیدی به عناصر آرایه نسبت میده. کد php: $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse"); Array ( [0] => Cat [1] => Horse [2] => Dog ) Sizeof(Array, Mode) تعداد عناصر ارایه رو بر میگردونه.mode اگر ۱ تنظیم بشه آرایه های چند بعدی هم تشخیص داده میشه. کد php: $people = array("Peter", "Joe", "Glenn", "Cleveland"); توابع سودمند درپی اچ پی PHP - Mohsen Omidvar - 01-01-2014 بعد از مدتها کار با php ممکنه هنوز توابعی باشن که باهاشون برخورد نکردیم و نمیدونیم چنین توابعی هم وجود دارن که میتونن کار مارو راحتتر کنن.در زیر اشاره ای میکنم به برخی از توابع مفیدی که ممکنه خیلی ها هنوز بهش بر نخورده باشن. توابعی با تعداد آرگومانهای دلخواه ممکنه قبلا شما توابعی نوشته باشین که به تعداد دلخوله میتنین آرگومان بهش پاس بدین اما تابعی توی php وجود داره که به شما اجازه میده توابعی بسازید که تعداد آرگومانها به صورت واقعی دلخواه هستند. در ابتدا یک مثال از تابعی میزم که میتونه تعداد آرگومانهای دلخواه رو بهش پاس بدید کد php: // function with 2 optional arguments اما حالا از تابع func_get_args()استفاده میکنیم : کد php: view sourceprint? مقدار حافظه استفاده شده : وقتی شما بدونید که برنامه ای که نوشتید چقدر از فضای حافظه رو اشغال میکنه بهتر میتونید برنامه خودتون رو بهینه کنید. پی اچ پی یک مدیریت حافظه و GC قوی داره.مقدار فضایی که اسکریپت شما در حافظه اشغال میکنه میتونه روی سرعت اجرای برنامه تاثیر گذار باشه.ما میتونیم از تابع memory_get_usage() برای مقدار حافشه مصرفی و از تابع memory_get_peak_usage() برای اطلاع از بیشترین حافظه مصرفی در اسکریت استفاده کنیم. کد php: echo "Initial: ".memory_get_usage()." bytes n"; برای اینکار از تابع getrusage() استفاده میکنیم.اسن تابع روی سرور های ویندوز جواب نمیده. کد php: print_r(getrusage()); Php از ثابتهای بسیار مفیدی استفاده میکنه که در زیر یه تعدادی رو براتون میذارم : __LINE__ خط فعلی برنامه __FILE__ مسیر فایل __DIR__ مسیر دایرکتوری فایل جاری __FUNCTION__ نام تابع جاری __CLASS__ نام کلاس جاری __METHOD__ نام متد جاری __NAMESPACE__ فضای نام جاری کد php: // this is relative to the loaded script's path گاهی اوقات ممکنه شما بخواید یک رشته منحصر به فرد درست کنید.پی اچ پی یک تابع با نام uniqid() برای همین کار در اختیار ما گذاشته : کد php: // generate unique string برای اینکه امکان شباهت دوتا رشته رو کم کنیم میتونیم یک پیشوند به تابع پاس بدیم. کد php: // with prefix کد php: // a complex array کد php: // a complex array ۸-فشرده سازی رشته ها وقتی بحث از فشرده سازی میشه ما معمولا فایلها به ذهنمون میاد.این امکان در پی اچ پی وجود داره که بشه رشته هارو به حالت فشرده در آورد. در مثال زیر ما از دوتا تابع gzcompress() و gzuncompress() برای این کار استفاده میکنیم : کد php: $string = register_shutdown_function() تابع register_shutdown_function() میتونید تعیین کنید قبل از اینکه اسکریپت شما به اتمام برسه چه تابعی اجرا بشه.اما اگر اسکریپت شما با دستور exit به پایان برسه یا یک خطا رخ بده ویا برنامه به وسیله کاربر متوقف بشه (باکلیک روی دوکمه stop مرورگر ) کد php: view sourceprint? |