هل هناك وظيفة PHP أو متغير إعطاء اسم المضيف المحلي؟
سؤال
وعند تشغيل برنامج نصي تحت أباتشي، وإدراج قيمة $_SERVER['SERVER_NAME']
إلى خطأ التقارير رسالة البريد الإلكتروني.
ولكن، إذا كان الشوك النصي ويب "عامل" وظيفة مع nohup php ...
، $_SERVER['SERVER_NAME']
يبدو أن فارغة هناك. وهكذا، إذا حدث خطأ، أفادت الأنباء أنه بدون اسم المضيف.
هل يمكنني موثوق الحصول على اسم المضيف عن طريق PHP، دون استدعاء قيادة hostname
يونكس؟
المحلول
و(PHP 4> = 4.0.2، PHP 5)
php_uname - إرجاع معلومات حول
يتم تشغيل نظام التشغيل PHP على
وphp_uname () بإرجاع وصف PHP نظام التشغيل يعمل على. وهذا هو نفس السلسلة التي تراها في أعلى جدا من phpinfo () الناتج. لاسم مجرد نظام التشغيل، والنظر في باستخدام PHP_OS ثابت، ولكن نأخذ في الاعتبار سيحتوي هذا الثابت تم بناء PHP نظام التشغيل على.
في بعض منصات يونيكس القديمة، قد لا يكون قادرا على تحديد معلومات OS الحالية في هذه الحالة سوف تعود إلى عرض وOS PHP البناء عليها. وهذا لن يحدث إلا إذا uname الخاص بك) مكتبة ( استدعاء إما غير موجود أو لا يعمل.
اقتباس فقرة>نصائح أخرى
و$hostname = gethostname();
ل PHP <5.3.0 ولكن> = 4.2.0 استخدام هذه :
و$hostname = php_uname('n');
لPHP <4.2.0 يمكنك محاولة واحدة من هذه:
$hostname = getenv('HOSTNAME');
$hostname = trim(`hostname`);
$hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a'));
ويمكنك استخدام _GLOBALS['MACHINENAME']
للحصول على المعلومات مباشرة من globals
array
.