• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

5.【xmlschema】php验证xsd函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

之前的笔记里面提到 可以使用 schemaValidate 函数来验证 xsd 但是 光使用上面的函数可能显示的错误信息一大坨 不方便管理 可以使用下面几个函数管理错误信息

libxml_use_internal_errors libxml_use_internal_errors — Disable libxml errors and allow user to fetch error information as needed 不显示libxml的错误信息但是允许user 自己抓取错误信息
syntax bool libxml_use_internal_errors ([ bool $use_errors = false ] ) 默认参数是false就是会显示错误信息

我们使用的主要函数如下:

libxml_clear_errors
libxml_disable_entity_loader
libxml_get_errors
libxml_get_last_error
libxml_set_external_entity_loader
libxml_set_streams_context
libxml_use_internal_errors

然后使用 libxml_get_errors 抓取所有的错误信息 然后 libxml_clear_errors 清除所有的errors

就可以捕捉所有的错误信息
参考 http://php.net/manual/en/function.libxml-get-errors.php

下面是整个一个代码

<?php
function libxml_display_error($error) 
{ 
	$return = "<br/>\n"; 
	switch ($error->level) { 
		case LIBXML_ERR_WARNING: 
		$return .= "<b>Warning $error->code</b>: "; 
		break; 
		case LIBXML_ERR_ERROR: 
		$return .= "<b>Error $error->code</b>: "; 
		break; 
		case LIBXML_ERR_FATAL: 
		$return .= "<b>Fatal Error $error->code</b>: "; 
		break; 
	} 
	$return .= trim($error->message); 
	if ($error->file) { 
		$return .= " in <b>$error->file</b>"; 
	} 
	$return .= " on line <b>$error->line</b>\n"; 

	return $return; 
} 

function libxml_display_errors() { 
	$errors = libxml_get_errors(); 
	var_dump($errors);exit;
	foreach ($errors as $error) { 
		print libxml_display_error($error); 
	} 
	libxml_clear_errors(); 
} 

// Enable user error handling 
libxml_use_internal_errors(true); 

$xml = new DOMDocument(); 
$xml->load('./demo.xml'); 

if ($xml->schemaValidate('./book.xsd')) {
	echo "validated</n>"; 
	
}else{
	libxml_display_errors(); 
}


?>

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP缩略图转换图片格式发布时间:2022-07-10
下一篇:
windows下安装php的redis扩展发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap