本文整理汇总了PHP中WXR_Parser_Regex::parse方法的典型用法代码示例。如果您正苦于以下问题:PHP WXR_Parser_Regex::parse方法的具体用法?PHP WXR_Parser_Regex::parse怎么用?PHP WXR_Parser_Regex::parse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WXR_Parser_Regex
的用法示例。
在下文中一共展示了WXR_Parser_Regex::parse方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: parse
function parse($file)
{
// Attempt to use proper XML parsers first
if (extension_loaded('simplexml')) {
$parser = new WXR_Parser_SimpleXML();
$result = $parser->parse($file);
// If SimpleXML succeeds or this is an invalid WXR file then return the results
return $result;
} else {
if (extension_loaded('xml')) {
$parser = new WXR_Parser_XML();
$result = $parser->parse($file);
// If XMLParser succeeds or this is an invalid WXR file then return the results
return $result;
}
}
// use regular expressions if nothing else available or this is bad XML
$parser = new WXR_Parser_Regex();
return $parser->parse($file);
}
示例2: parse
function parse($file)
{
// Attempt to use proper XML parsers first
if (extension_loaded('simplexml')) {
$parser = new WXR_Parser_SimpleXML();
$result = $parser->parse($file);
// If SimpleXML succeeds or this is an invalid WXR file then return the results
if (!is_wp_error($result) || 'SimpleXML_parse_error' != $result->get_error_code()) {
return $result;
}
} else {
if (extension_loaded('xml')) {
$parser = new WXR_Parser_XML();
$result = $parser->parse($file);
// If XMLParser succeeds or this is an invalid WXR file then return the results
if (!is_wp_error($result) || 'XML_parse_error' != $result->get_error_code()) {
return $result;
}
}
}
// We have a malformed XML file, so display the error and fallthrough to regex
if (isset($result) && defined('IMPORT_DEBUG') && IMPORT_DEBUG) {
echo '<pre>';
if ('SimpleXML_parse_error' == $result->get_error_code()) {
foreach ($result->get_error_data() as $error) {
echo $error->line . ':' . $error->column . ' ' . esc_html($error->message) . "\n";
}
} else {
if ('XML_parse_error' == $result->get_error_code()) {
$error = $result->get_error_data();
echo $error[0] . ':' . $error[1] . ' ' . esc_html($error[2]);
}
}
echo '</pre>';
echo '<p><strong>' . __('There was an error when reading this WXR file', 'wordpress-importer') . '</strong><br />';
echo __('Details are shown above. The importer will now try again with a different parser...', 'wordpress-importer') . '</p>';
}
// use regular expressions if nothing else available or this is bad XML
$parser = new WXR_Parser_Regex();
return $parser->parse($file);
}
示例3: foreach
/**
* Ensure that the regex parser can still parse invalid CDATA blocks (i.e. those
* with "]]>" unescaped within a CDATA section).
*/
function test_unescaped_cdata_closing_sequence()
{
$file = DIR_TESTDATA . '/export/crazy-cdata.xml';
$parser = new WXR_Parser_Regex();
$result = $parser->parse($file);
$post = $result['posts'][0];
$this->assertEquals('Content with nested <![CDATA[ tags ]]> :)', $post['post_content']);
foreach ($post['postmeta'] as $meta) {
switch ($meta['key']) {
case 'Plain string':
$value = 'Foo';
break;
case 'Closing CDATA':
$value = ']]>';
break;
case 'Alot of CDATA':
$value = 'This has <![CDATA[ opening and ]]> closing <![CDATA[ tags like this: ]]>';
break;
default:
$this->fail('Unknown postmeta (' . $meta['key'] . ') was parsed out by' . $p);
}
$this->assertEquals($value, $meta['value']);
}
}