IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> php xml simplexml_load_string |SimpleXMSimpleXMLElementLElement用法 -> 正文阅读

[PHP知识库]php xml simplexml_load_string |SimpleXMSimpleXMLElementLElement用法

* Xml.php

class Xml
{
    public static function fixImg($s) {
        $enterImg = false;
        $ns = "";
        for ($i = 0; isset($s[$i]); $i++) {
            if ($s[$i] == '<' && $s[$i+1]=='i' && $s[$i+2]=='m' && $s[$i+3] == 'g') {
                $enterImg = true;
                $i += 3;
            }
            if ($enterImg && $s[$i] == '>') {
                $enterImg = false;
                if ($s[$i-1] != '/') {
                    $ns .= '/';
                }
            }
            $ns .= $s[$i];
        }
        return $ns;
    }

    /**
     * @param $s string
     * @param $tags array
     * @author mzh@shall-buy.com
     * @date 2021-08-25 9:17 AM
     */
    public static function fixCloseTags($s, $tags) {
        $ns = "";
        $enterTagMap = array();
        foreach ($tags as $tag) {
            $enterTagMap[$tag] = false;
        }
        for ($i = 0; isset($s[$i]); $i++) {
            if ($s[$i] == '<') {
                foreach ($tags as $tag) {
                    for ($j = 0; isset($tag[$j]); $j++) {
                        if ($s[$i + 1 + $j] != $tag[$j]) {
                            break;
                        }
                    }
                    if (!isset($tag[$j])) {
                        $enterTagMap[$tag] = true;
                    }
                }
            }
            foreach ($enterTagMap as $tag => $b) {
                if ($b && $s[$i] == '>') {
                    $enterTagMap[$tag] = false;
                    if ($s[$i-1] != '/') {
                        $ns .= '/';
                    }
                }
            }
            $ns .= $s[$i];
        }
        return $ns;
    }
}

https://php.net/manual/en/function.simplexml-load-string.php

* index.php

 $content = <<<EOF
<p>很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长<a href="https://www.cnblogs.com/hdwang/p/4875678.html" rel="noopener noreferrer" target="_blank">链接</a>scaschttps://www.cnblogs.com/hdwang/p/4875678.html</p><img src="http://article-qiniu.shall-buy.com/article-other-20210712173735366066.jpg" image-src="http://article-qiniu.shall-buy.com/article-other-20210712173735366066.jpg" width="100%"><p><br></p><video class="ql-video" src="http://article-qiniu.shall-buy.com/article-other-20210714174137247867.mp4" video-src="http://article-qiniu.shall-buy.com/article-other-20210714174137247867.mp4" width="100%" controls="controls"></video><p><br></p><audio src="http://article-qiniu.shall-buy.com/article-other-20210713134439589170.mp3" audio-src="http://article-qiniu.shall-buy.com/article-other-20210713134439589170.mp3" controls="true" style="display:block;margin:0 auto"></audio><video class="ql-video" src="http://article-qiniu.shall-buy.com/article-other-20210713134451176754.mp4" video-src="http://article-qiniu.shall-buy.com/article-other-20210713134451176754.mp4" width="100%" controls="controls"></video><p><br></p><p>很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长</p>;
EOF;
        $content = Xml::fixCloseTags($content, ["img", "br"]);

// load the XML string defined above
        // $content = preg_replace("/<img .*>/", "<img ".${1}."\/>", $content);
        $xml = sprintf("<?xml version=\"1.0\" encoding=\"UTF-8\"?><div>%s</div>", $content);
        /** @var $dom \SimpleXMSimpleXMLElementLElement */
        $dom = simplexml_load_string($xml);
        if (false == $dom) {
            throw new \InvalidArgumentException("Invalid xml: ".$xml);
        }
        $elements = array('text' => array(), 'img' => array(), 'audio' => array(), 'video' => array());
        foreach ($dom as $tag => $attr) {
            /** @var $attr \SimpleXMLElement */
            if ($tag == 'img') {
                array_push($elements['img'], $attr['src']->__toString());
            } elseif ($tag == 'audio') {
                array_push($elements['audio'], $attr['src']->__toString());
            } elseif ($tag == 'video') {
                array_push($elements['video'], $attr['src']->__toString());
            } else {
                $txt = \strip_tags($attr);
                if (!empty($txt)) {
                    array_push($elements['text'], $txt);
                }
            }
        }
        var_dump($elements);

simplexml

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 11:53:54  更:2021-08-26 11:55:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 1:34:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码