我一直收到此错误消息显示为网站和网站error_log中的标题:
[18-Nov-2017 23:06:13 America / New_York] PHP警告:posix_uname()出于安全原因在第1450行的/home/reddirtr/public_html/holland_college_mw19/includes/GlobalFunctions.php中被禁用
如何更改GlobalFunctions.php中的代码以删除警告?
function wfHostname() {
static $host;
if ( is_null( $host ) ) {
# Hostname overriding
global $wgOverrideHostname;
if ( $wgOverrideHostname !== false ) {
# Set static and skip any detection
$host = $wgOverrideHostname;
return $host;
}
if ( function_exists( 'posix_uname' ) ) {
// This function not present on Windows
$uname = posix_uname();
} else {
$uname = false;
}
if ( is_array( $uname ) && isset( $uname['nodename'] ) ) {
$host = $uname['nodename'];
} elseif ( getenv( 'COMPUTERNAME' ) ) {
# Windows computer name
$host = getenv( 'COMPUTERNAME' );
} else {
# This may be a virtual server.
$host = $_SERVER['SERVER_NAME'];
}
}
return $host;
}
答案 0 :(得分:0)
您可以使用@
字符隐藏从该表达式生成的任何错误消息:
PHP支持一个错误控制操作符:at符号(@)。当在PHP中添加表达式之前,将忽略该表达式可能生成的任何错误消息。
您可以按照以下方式使用它:
if ( function_exists( 'posix_uname' ) ) {
// This function not present on Windows
$uname = @posix_uname();
} else {
$uname = false;
}
请记住,它没有解决问题,只是隐藏了错误消息。另外,您可以阅读章节"Errors -> Basic"了解基本配置,以隐藏/显示脚本中的错误消息。
答案 1 :(得分:0)
默认情况下,如果发生任何可疑活动,服务器会阻止某些功能。因此,请尝试通过添加
来编辑for(k=0; k<10; k++)
{
if(k<5)
{
a[k]=k+1;
j=k+5;
b[j] = a[k];
}
else
{
a[k] = k+1;
j = k-5;
b[j] = a[k];
}
printf("%d %d \n",j,k);
}
文件
php.ini
该函数将disable_functions=
设置为无。如果需要,您可以添加一些功能。