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