如何处理PHP中 file_get_contents()函数的警告?
PHP中的file_get_contents()函数是一个内置函数,用于将文件读入字符串。该函数使用服务器支持的内存映射技术,从而增强了性能,使其成为读取文件内容的首选方式。
要读取的文件的路径作为参数发送给函数,成功时返回读取的数据,失败时返回 FALSE。
返回值:成功返回读取数据,失败返回FALSE。
错误和异常:
- 如果要打开带有特殊字符(例如空格)的文件,则需要先使用 urlencode() 对其进行编码。
- file_get_contents()函数返回布尔值 FALSE,但也可能返回计算结果为 FALSE 的非布尔值。
- 如果找不到文件名、最大长度小于零或查找流中指定的偏移量失败,则会生成 E_WARNING 级别错误。
例子:
Input: file_get_contents('https://www.geeksforgeeks.org/');
Output: A computer science portal for geeks
Input: file_get_contents('gfg.txt', FALSE, NULL, 0, 14);
Output: A computer science portal for geeks
方案一:
PHP
PHP
PHP
PHP
运行时错误:
PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: System error in /home/3d11f9784b99e2c83058d5842d5533ce.php on line 5
PHP Warning: file_get_contents(https://www.geeksforgeeks.org/): failed to open stream: php_network_getaddresses: getaddrinfo failed: System error in /home/3d11f9784b99e2c83058d5842d5533ce.php on line 5
输出:
It will redirect to GeeksforGeeks Home Page
方案二:
PHP
运行时错误:
PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: System error in /home/4659aeca06fdba457da0c5d78befb39a.php on line 6
PHP Warning: file_get_contents(gfg.txt): failed to open stream: No such file or directory in /home/4659aeca06fdba457da0c5d78befb39a.php on line 6
输出:
It will display the content of gfg.txt file.
For Example: A computer science portal for geeks
很明显,我们可以看到以PHP警告形式出现的上述运行时错误,这确实是出乎意料的。这里出现了删除这些错误的问题,有没有办法处理这些错误?
是的, PHP为我们提供了一个简单的解决方案。
PHP支持一种错误控制运算符:符号 (@)。当附加到PHP中的表达式时,该表达式可能生成的任何错误消息都将被忽略。因此,可以通过以下方式在函数调用file_get_contents( ) 之前简单地插入错误控制运算符(@) 来抑制上述PHP警告:
更新程序 1:
PHP
输出:
It will redirect to GeeksforGeeks Home Page
更新程序 2:
PHP
输出:
It will display the content of gfg.txt file.
For Example: A computer science portal for geeks
因此,在添加“@”符号后,我们可以看到所有这些PHP警告都被抑制了,并且只显示了如上所示的输出。
参考: https://www. PHP.net/manual/en/语言。运算符.errorcontrol。 PHP