هل هناك وظيفة PHP أو متغير إعطاء اسم المضيف المحلي؟

StackOverflow https://stackoverflow.com/questions/211885

  •  03-07-2019
  •  | 
  •  

سؤال

وعند تشغيل برنامج نصي تحت أباتشي، وإدراج قيمة $_SERVER['SERVER_NAME'] إلى خطأ التقارير رسالة البريد الإلكتروني.

ولكن، إذا كان الشوك النصي ويب "عامل" وظيفة مع nohup php ...، $_SERVER['SERVER_NAME'] يبدو أن فارغة هناك. وهكذا، إذا حدث خطأ، أفادت الأنباء أنه بدون اسم المضيف.

هل يمكنني موثوق الحصول على اسم المضيف عن طريق PHP، دون استدعاء قيادة hostname يونكس؟

هل كانت مفيدة؟

المحلول

php_uname ( "ن")

<اقتباس فقرة>   

و(PHP 4> = 4.0.2، PHP 5)
  php_uname - إرجاع معلومات حول   يتم تشغيل نظام التشغيل PHP على

     

وphp_uname () بإرجاع وصف PHP نظام التشغيل   يعمل على. وهذا هو نفس السلسلة التي تراها في أعلى جدا من   phpinfo () الناتج. لاسم مجرد نظام التشغيل، والنظر في   باستخدام PHP_OS ثابت، ولكن نأخذ في الاعتبار سيحتوي هذا الثابت   تم بناء PHP نظام التشغيل على.

     

في بعض منصات يونيكس القديمة، قد لا يكون قادرا على تحديد   معلومات OS الحالية في هذه الحالة سوف تعود إلى عرض   وOS PHP البناء عليها. وهذا لن يحدث إلا إذا uname الخاص بك) مكتبة (   استدعاء إما غير موجود أو لا يعمل.

نصائح أخرى

ل PHP> = 5.3.0 استخدام هذا :

و$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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top