php如何捕获一个警告信息
我们要需怎样捕获警告,从PHP的一些原生函数被抛出,然后处理它们。
例如:
array dns_get_record ( string $hostname [, int $type= DNS_ANY [, array &$authns [, array &$addtl ]]] )
当dns查询失败会抛出一个警告。
用try/catch是不可以的,因为警告不算是一个异常。
现在有两个选择:
1.set_error_handler似乎有点小题大做,因为我不得不使用它来过滤页面中的每一个警告(这是真的吗?);
2.调整错误报告/显示警告这些不回输出到屏幕上,没有发现主机记录只能检测到返回值是false.
最佳的做法是什么?
一种可能性是在调用之前设置自己的错误处理程序,用restore_error_handler()恢复上一个错误处理。Zend Framework可以在这几方面做到。顺便说一句最近在php新闻组上有一些讨论是关于用原来的例外来取代PHP错误。
另一种可能性是在检查dns_get_record()的返回值之后使用@运算符来抑制错误。但是建议不要把这个作为errors/warnings的触发处理,不要抑制。
注:
你能用 set_error_handler()方法和ErrrorException类来把所有的php错误转化为异常。
function handleError($errno, $errstr, $errfile, $errline, array $errcontext)
{
// error was suppressed with the @-operator
if (0 === error_reporting()) {
 ......
如何获得php数组中最后一个元素的键名?
用key加end()的组的可以获得数组中最后一个元素的键名。代码片断如下
$array = array(
'first' => 123,
'second' => 456,
'last' => 789,
);
end($array); // 移动数据内部指针到最后一个元素。
$key = key($array); // 获取指针指身数组的键名。
var_dump($key);
运行这段代码,将输出:
string 'last' (length=4)
......
在PHP中,你如何改变数组中某一元素的键名?
关联数组形式的key => value,其中key是一个数值,但它不是一个连续的数值。key为实际的ID号码,key的名字为一个实际的数字。如果想把key的名字改为一个新的名字,要用一个什么函数或方法来实现?
实际上php本身没有这样的内置函数来实现,但我们可以用另量个途径来做,像这样
$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);
......
php多维数组转xml
任务目标是把下面的多数组转成xml:
Array
(
['total_stud']=> 500
[0] => Array
(
[student] => Array
(
[id] => 1
[name] => abc
[address] => Array
(
[city]=>Pune
[zip]=>411006
)
&nbs......
php如何转化数组为SimpleXML对象
以下简短的代码可以把php数组转化为SimleXML,并输出xml。
$test_array = array (
'bla' => 'blub',
'foo' => 'bar',
'another_array' => array (
'stack' => 'overflow',
),
);
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($test_array, array ($xml, 'addChild'));
print $xml->asXML();
输出后的结果为
<?xml version="1.0"?>
<root>
<blub>bla</blub>
<bar>foo</bar>
<overflow>stack</overflow>
</root>
你可以在用array_walk之前用array_flip(),以解决键和值对换问题.array_walk_recursive需
要PHP 5.可以使用array_walk代替,但你不能在xml中得到'stack' => 'overflow'.这段代码只能转化一维数组.
......
近期文章
- 织梦5.7{dede:php}标签不起作用的解决办法
- php版本non-thread-safe和thread-safe的区别
- 什么是fatal flex scanner internal error--end of buffer missed
- php文件命名建议用小写
- php cookie字典
- seft和static在php中有什么不同
- 用php快速获取图片大小
- 用php的json_decode()检测json数据是否合法
- php三个等号
- unset和=null有什么不同
- php如何捕获一个警告信息
- 如何获得php数组中最后一个元素的键名?
- 在PHP中,你如何改变数组中某一元素的键名?
- php多维数组转xml
- php如何转化数组为SimpleXML对象
- php如何把数组定义为常量
- php根据数组中的值删除数组中的元素
- 计算两个日期相差多少天
- 如何捕获var_dump的输出结果保存到一个字符串中?
- 用php获取完整的URL