用php操作DOM,方便、实用

2022-10-11 20:42:36 157
魁首哥

PHP最新项目speedx

前段时间无聊的时候写了一个小项目,我给他取名叫speedx,随便取的一个名,原码我把它放在了这里:

,目前还没有完全完工,还没有达到我的预期,不过现在基本核心功能已经可以用了,用起来还是很爽的。现在来说说他的用途:

1: 创建DOM节点,目前所有HTML标签节点都能创建,包括最新的H5标签, 如:

$test = DOCTYPE_HTML_4_01_STRICT;

$domset[“doctype”] = create_node(DOCTYPE_HTML_4_01_STRICT);//创建doctype类型节点

$domset[“div”] = create_node(‘

border :1px solid black;” >’);//创建doctype类型节点

$domset[“style”] = create_node(“

$domset[” script “] = create_node(“

$domset[“img”] = create_node(“”);

$domset[“br”] = create_node(“
”);

$domset[“text”] = create_nodeText(“这是内部文本内容”);

$domset[“_null_”] = creat_node(null);//创建空节点,或直接传入null;

2: 对于插入子节点、兄弟节点、属性操作等也是很简单的:

//div节点添加子节点

$node_div = create_node(‘

’);

$node_span_c = create_node(“”);

$node_div->append($node_span_c);

printvar($node_div);

//ul节点添加节点集

$node_ul = create_node(“

    ”);

    $ul_li_set = create_nodeSet(“li”,5)->appendChild(“”);

    $node_ul->append($ul_li_set);

    printvar($node_ul);

    //style节点添加class节点

    $style = create_node(“

    $class_alert = create_styleClass(“.alert”);

    $item1 = create_classItem(“display: flex ;”);

    $item2 = create_classItem(“float: auto;”);

    $class_alert->append([$item1,$item2]);

    $style->append($class_alert);

    3:以对象的方式创建CSS样式,并且自动做浏览器匹配,自动在相应的CSS属性前加前缀,也就是说书写的时候我们只要按标准的样式写一遍就行,本项目会自动添加其它浏览对应的样式匹配。比如:

    我们写这样一个样式属性:

    $itembox = create_classItem(“display:inline-box;”);

    就会生成以下的完整样式属性:

    -ms-display:inline-box;

    -webkit-display:-webkit-inline-box;

    -moz-display:-moz-inline-box;

    display:inline-box;

    是不是很实用,对于创建一个style样式就更简单了。如,我们创建一个 .from 的样式类,如下

    $class4 = create_styleClass(‘@keyframes testanimations’);

    $class4_1 = create_styleClass(“from”);

    $item1_class4_1 = create_classItem(‘transform: translate(0, 0);’);

    $class4_1->append($item1_class4_1);

    $class4_2 = create_styleClass(“20%”);

    $item2_class4_1 = create_classItem(‘transform: translate(20px, 20px);’);

    $class4_2->append($item2_class4_1);

    $class4_3 = create_styleClass(“40%”);

    $item3_class4_1 = create_classItem(‘transform: translate(40px, 0);’);

    $class4_3->append($item3_class4_1);

    $class4->append([$class4_1,$class4_2,$class4_3]);

    生成的.from类如下:

    @-moz-keyframes testanimations{

    from{-ms-transform:translate(0,0);-webkit-transform:translate(0,0);-moz-transform:translate(0,0);transform:translate(0,0);}

    20%{-ms-transform:translate(20px,20px);-webkit-transform:translate(20px,20px);-moz-transform:translate(20px,20px);transform:translate(20px,20px);}

    40%{-ms-transform:translate(40px,0);-webkit-transform:translate(40px,0);-moz-transform:translate(40px,0);transform:translate(40px,0);}

    }

    @-webkit-keyframes testanimations{

    from{-ms-transform:translate(0,0);-webkit-transform:translate(0,0);-moz-transform:translate(0,0);transform:translate(0,0);}

    20%{-ms-transform:translate(20px,20px);-webkit-transform:translate(20px,20px);-moz-transform:translate(20px,20px);transform:translate(20px,20px);}

    40%{-ms-transform:translate(40px,0);-webkit-transform:translate(40px,0);-moz-transform:translate(40px,0);transform:translate(40px,0);}

    }

    @keyframes testanimations{

    from{-ms-transform:translate(0,0);-webkit-transform:translate(0,0);-moz-transform:translate(0,0);transform:translate(0,0);}

    20%{-ms-transform:translate(20px,20px);-webkit-transform:translate(20px,20px);-moz-transform:translate(20px,20px);transform:translate(20px,20px);}

    40%{-ms-transform:translate(40px,0);-webkit-transform:translate(40px,0);-moz-transform:translate(40px,0);transform:translate(40px,0);}

    }

    可以看出,已经做了自动匹配了,目前匹配的浏览器有:火狐、谷哥、安卓、苹果、 微软 、还欧明。

    4:节点筛选过滤器,这里不做介绍了。

    5:远程站点数据获取,就是从其它站点上的网页上弄点数据什么的,目前还没有做到网站数据抓取,不过这也是后期完善的一部分。

    其它的项目还有很多,详情我会在下面这个博客上逐渐登出来。 欢迎大家多多捧场,站点刚刚弄的,里面目前没什么内容,我会尽快多放些干货放上面,这年头,满屏都是抖奶的年代,我们程序员坚守一方净土不容易,希望大家多多支持我,谢谢。

分享
海报
157
上一篇:推荐Web程序员常用的15个源代码编辑器 下一篇:10个国外技术博客,教你如何优雅的学习PHP

忘记密码?

图形验证码