یک وبلاگ دیگر از یک برنامه نویس دیگر
PHP و توابعی که کمتر استفاده میکنیم
چند تا تابع هست که ممکنه شما ندیده باشیدشون. منم یه چند تایی رو میشناختم که هر کدوم یه وقتایی نجاتم داده بودن از کلی کد نویسی زاید. این شد که تصمیم گرفتم یه چند تایی رو معرفی کنم:
pack()
این تابع یک بار منو نجات داد. PHP برای عملیات بیتی مخصوصا روی فایلها کار چندانی انجام نداده. یعنی تمام توابع برخلاف زبانهای دیگه هستند. مثلا تابع fwrite یه رشته (string )رو توی فایل مینویسه و این یعنی یه مشکل :).
یه زمانی میخواستم برنامه ای بنویسم که یه فایلی ایجاد کنه که توی دلفی بخونمش،اونجا قضیه برعکسه. توی دلفی باینری یه انتخاب ساده تره. اینجا بود که تابع pack رو پیدا کردم این تابع برای ایجاد یک رشته باینری استفاده میشه. یعنی اگه این رشته رو توی یه فایل بنویسی خیلی راحت میتونی مثلا توی دلفی یا سی اونو از فایل بخونی. مثلا برای ایجاد کردن یه خط حاوی دو تا کاراکتر،یه int اینجوری میشه عمل کرد :
$bin_str=pack('ccI',65,70,122);
همین. لیت فرمتهای پشتیبانی شده توسط این تابع توی صفحه راهنما هست. یه تابع برعکس هم هست، تابع unpack() که میتونه خیلی مفید باشه.
get_browser()
این تابع،بر اساس user-agent داده شده، یه سری اطلاعات رو به شما میده که میتونه مفید باشه. البته برای اینکه این تابع کار کنه نیاز به اینه که فایل browsecap رو توی فایل تنظیمات php اضافه کنید مثلا :
[browscap] ; http://php.net/browscap browscap = /opt/lampp/share/php_browscap.ini
البته فقط معلوم نیست چرا این رو نمیشه از طریق کد انجام داد (یعنی این فقط از طریق فایل ini قابل تغییره نه از طریق apache یا اینکه ini_set )بنابر این قبل از اینکه از این تابع استفاده کنید حتما مطمئن بشید که توی سرورتون تنظیمه. طریقه استفاده سادست :
<?php echo $_SERVER['HTTP_USER_AGENT'] . "\n\n"; $browser = get_browser($_SERVER['HTTP_USER_AGENT'], true); print_r($browser); ?>
اینم خروجیش برای من :
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.21022) FirePHP/0.4
Array
(
[browser_name_regex] => §^mozilla/5\.0 \(x11; .*; .*linux.*; .*; rv:1\.9\.2.*\) gecko/.* firefox/3\.6.*$§
[browser_name_pattern] => Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.2*) Gecko/* Firefox/3.6*
[parent] => Firefox 3.6
[platform] => Linux
[browser] => Firefox
[version] => 3.6
[majorver] => 3
[minorver] => 6
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[javaapplets] => 1
1 => 1
[cssversion] => 3
[supportscss] => 1
[alpha] =>
[beta] =>
[win16] =>
[win32] =>
[win64] =>
[backgroundsounds] =>
[cdf] =>
[vbscript] =>
[activexcontrols] =>
[isbanned] =>
[ismobiledevice] =>
[issyndicationreader] =>
[crawler] =>
[aol] =>
[aolversion] => 0
)
فعلا حوصله نوشتن بیشتر ندارم، وقتشم نیست. تا دفعه بعد که ادامه اینو بنویسم.
| چاپ این نوشته | این نوشته توسط فرود در روز 2010/02/24 در ساعت 20:01 نوشته شده است و در دسته PHP, برنامه نویسی دسته بندی شده است. پاسخهای این نوشته را از طریق RSS 2.0 دنبال کنید. شما میتوانید نظر خود را ارسال کنید یا از سایت خود دنبالک ارسال کنید. |





در 1 سال پیش
یه سوال داشتم اگه ممکنه یه میل بهم بزنید تنکس
موافقید یا نه :
0
0
در 1 سال پیش
خیلی بامزست!! خوب بپرس همین جا!!! به هر حال فقط چون سرحالم :) ایمیل زدم.
موافقید یا نه :
0
0
در 1 سال پیش
تازه اینو پیدا کردی؟ اینو که همه میدونستن
موافقید یا نه :
0
0
در 1 سال پیش
شما تازه اینو دیدی؟ اینو که خیلی وقته نوشتم و در ثانی نوشتمش واسه اونها که نمیدونستن. شما مشکلاتی که فکر میکنی مثلا با من داری توی دنیا واقعی اینجا لازم نیست به صورت غیر مستقیم مطرح کنی.
موفق باشی.
موافقید یا نه :
0
0