PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : توابع تعریف شده در php چه توابعی هستند؟



سیدرضا بازیار
August 15th, 2018, 09:50
سلام دوستان

توی زبان php با استفاده از function_exists میتونیم تعیین کنیم که اگه یه تابع پیدا شد، مقدار True رو برگردونه

برخی از توابع به صورت پیشفرض تعریف شدند. مانند:


<?php
if (function_exists('imap_open')) {
echo "IMAP functions are available.<br />\n";
} else {
echo "IMAP functions are not available.<br />\n";
}
?>

لیست کامل توابع php (http://www.php.net/manual/en/indexes.functions.php)

وقتی لیست کامل توابع php رو مشاهده میکنیم، برخی از توابع رو اگه در function_exists وارد کنید نتیجه True رو برمیگردونه. مانند: abs (http://php.net/manual/en/function.abs.php) یا array_shift (http://php.net/manual/en/function.array-shift.php)

اما برخی موارد موجود در لیست رو اصلا به عنوان تابع قبول نداره. مانند: apache_get_version (http://php.net/manual/en/function.apache-get-version.php)

سوال من اینه که توابع تعریف شده در php کدام توابع هستند؟ من به دنبال لیست کامل توابع php هستم

lizard.tiny
August 15th, 2018, 11:22
درود

از این کدی که نوشتم استفاده کنید : https://miladworkshop.ir/paste/y6ereD

JeyServer
August 15th, 2018, 11:25
سلام
لینکی که معرفی کردید توابع قابل استفاده در php رو به شما نشون داده اما عملا همه اونا ها نصب و یا فعال نیستند.



بسیاری از توابع بصورت پیشفرض بر روی هسته php یا افزونه های اصلی php قرار گرفته اند، مثلا strlen یا count از توابع اصلی هستند و curl_init که وابسته به افزونه curl هست توسط هر شخصی که php رو نصب میکنه از ابتدا فعال میشه.





گروه ای توابعی که معرفی کردید وابسته به افزونه های خاصی هستند، مثلا bcadd وابسته به افزونه bcmath هست و برنامه نویس نمیتونه انتظار داشته باشه که بر روی هر سروری این افزونه نصب و فعال باشه، بنابراین قبل از استفاده باید از تابع function_exists یا extension_loaded استفاده کنه تا مطمئن بشه این دسته از توابع فعال و در دسترس هستند.






گروه نهایی از توابعی که غیرفعال هستند، مربوط به تنظیمات php هست؛ بعضی از توابع بنابر ملاحظات امنیتی و بنابر صلاح دید مدیر سرور از طریق تنظیمات php غیرفعال میشوند، برای مثال اکثر توابع مربوط به shell و اجرای command در php غیرفعال هستند: exec, shell_exec و passthru

سیدرضا بازیار
August 15th, 2018, 11:33
درود

از این کدی که نوشتم استفاده کنید : https://miladworkshop.ir/paste/y6ereD

پس با توجه به توضیحات دوست عزیزمون JeyServer (http://www.webhostingtalk.ir/member.php?u=108712) این کد رو که میلاد جان نوشتند توابعی رو که فعال هستند رو فراخوانی میکنه و ممکنه روی هر سیستم توابع مختلفی رو نمایش بده. درسته؟

- - - Updated - - -

دلیل استفاده از internal در کد چیه؟ بجز internal چیز دیگه هم هم میشه استفاده کرد؟

lizard.tiny
August 15th, 2018, 11:43
پس با توجه به توضیحات دوست عزیزمون JeyServer (http://www.webhostingtalk.ir/member.php?u=108712) این کد رو که میلاد جان نوشتند توابعی رو که فعال هستند رو فراخوانی میکنه و ممکنه روی هر سیستم توابع مختلفی رو نمایش بده. درسته؟

- - - Updated - - -

دلیل استفاده از internal در کد چیه؟ بجز internal چیز دیگه هم هم میشه استفاده کرد؟
درود

بله

استفاده از internal توابع داخلی رو نمایش میده

در همین تابع از user هم میشه استفاده کرد, اما موردی که شما فرمودید و نیاز دارید که پیشفرض هایی که فعال هستند و از طریق تابع function_exists پاسخ true دریافت کنند رو از طریق internal باید خروجی بگیرید

RayanPartoCo
August 16th, 2018, 12:34
از داکیومنت خود php هم میتونید استفاده کنید php.net لیست فانکشن ها را داره ( اما باید دید روی سرور کدومشون نصب هستند )