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'.这段代码只能转化一维数组.   ......
<<  1  2  3  4  5  6  >>
京ICP备14008139号-1