热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

app.wxss转php,微信小程序转百度小程序的PHP代码

听说百度小程序开始出现手机端搜索流量,作为SEO一员,必须搞他。但是又奈何之前做的都是微信小程序,所以用php写了一个微信小程序转百度小程

听说百度小程序开始出现手机端搜索流量,作为SEO一员,必须搞他。但是又奈何之前做的都是微信小程序,所以用php写了一个微信小程序转百度小程序代码。

修改文件后缀名

.wxml转换为.swan

.wxss转换为.CSS

修改文件内容

.js文件:将wx.替换为swan.

.swan文件:

循环部分:

wx:for="{{var}}替换为s-for="var"

wx:key替换为s-for-index

wx:for-item替换为s-for-item

条件部分:

wx:if="{{expression}}替换为s-if="expression"

wx:elif="{{expression}}替换为s-elif="expression"

wx:else替换为s-else

模板:需将data属性两个大括号替换为三个大括号

修改以下代码中的小程序所在目录,运行即可自动转换

class Convert_wx_to_bd

{

private $project_dir;

private $ext_rules;

public function __construct($project_dir, $ext_rules = array('wxml' => 'swan', 'wxss' => 'css'))

{

$this->project_dir = $project_dir;

$this->ext_rules = $ext_rules;

//修改根目录app.wxss后缀及app.js内容

$this->convert_root();

//批量修改文件后缀:.wxml转换为.swan,.wxss转换为.css

$this->convert_ext($this->project_dir.'/'.'pages', $this->ext_rules);

//批量修改语法部分

$this->convert_text($this->project_dir.'/'.'pages');

}

/**

*

*/

private function convert_root() {

//修改根目录.wxss文件后缀

rename($this->project_dir.'/'.'app.wxss', $this->project_dir.'/'.'app.css');

//修改根目录app.js文件语法部分

$app_js = $this->project_dir.'/'.'app.js';

$text = file_get_contents($app_js);

$text = str_replace('wx.', 'swan.', $text);

file_put_contents($app_js, $text);

}

/**

* 批量修改文件后缀名

* @param $path 文件夹路径

* @param $ext_rules 文件后缀替换规则

* @return void

*/

private function convert_ext($path, $ext_rules)

{

$handle = opendir($path);

if ($handle) {

while (false !== ($file = readdir($handle))) {

if ($file != "." && $file != '..') {

if (is_dir($path . '/' . $file)) {

$this->convert_ext($path . '/' . $file, $ext_rules);

} else {

$path_info = pathinfo($file);

$ext = $path_info['extension'];

$all_exts = array_keys($ext_rules);

if (in_array($ext, $all_exts)) {

$src = $path . '/' . $file;

$dext = $ext_rules[$ext];

$fileName = $path_info['filename'];

$dest = $path . '/' . $fileName . '.' . $dext;

rename($src, $dest);

}

}

}

}

}

}

/*

* js文件:

* 1、wx.替换为swan.

* .swan文件:

* 1、.wxml替换为.swan

* 2、.wxss替换为.css

* 循环:

* 3、wx:for="{{var}}替换为s-for="var"

* 4、wx:key替换为s-for-index

* 5、wx:for-item替换为s-for-item

* 条件:

* 6、wx:if="{{expression}}替换为s-if="expression"

* 7、wx:elif="{{expression}}替换为s-elif="expression"

* 8、wx:else替换为s-else

* 模板:

* 9、需将data属性两个大括号替换为三个大括号

*/

private function convert_text($path)

{

$handle = opendir($path);

if ($handle) {

while (false !== ($file = readdir($handle))) {

if ($file != "." && $file != '..') {

if (is_dir($path . '/' . $file)) {

$this->convert_text($path . '/' . $file);

} else {

$path_info = pathinfo($file);

$ext = $path_info['extension'];

$src = $path . '/' . $file;

if ('js' == $ext) {

$text = file_get_contents($src);

$text = str_replace('wx.', 'swan.', $text);

file_put_contents($src, $text);

}

if ('swan' == $ext) {

$text = file_get_contents($src);

$text = str_replace('.wxml', '.swan', $text);

$text = str_replace('.wxss', '.css', $text);

$text = preg_replace("/wx:for=([\"|'])\{\{(.*?)\}\}([\"|'])/", "s-for=$1$2$3", $text);

$text = str_replace('wx:key', 's-for-index', $text);

$text = str_replace('wx:for-item', 's-for-item', $text);

$text = preg_replace("/wx:if=([\"|'])\{\{(.*?)\}\}([\"|'])/", "s-if=$1$2$3", $text);

$text = preg_replace("/wx:elif=([\"|'])\{\{(.*?)\}\}([\"|'])/", "s-elif=$1$2$3", $text);

$text = str_replace('wx:else', 's-else', $text);

$text = preg_replace("/data=([\"|'])\{\{(.*?)\}\}([\"|'])/", "data=$1{{{\$2}}}$3", $text);

file_put_contents($src, $text);

}

}

}

}

return false;

}

}

}

$obj = new Convert_wx_to_bd('C:/mini');

exit('SUCCESS!');

?>



推荐阅读
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 本项目在Java Maven框架下,利用POI库实现了Excel数据的高效导入与导出功能。通过优化数据处理流程,提升了数据操作的性能和稳定性。项目已发布至GitHub,当前最新版本为0.0.5。该项目不仅适用于小型应用,也可扩展用于大型企业级系统,提供了灵活的数据管理解决方案。GitHub地址:https://github.com/83945105/holygrail,Maven坐标:`com.github.83945105:holygrail:0.0.5`。 ... [详细]
  • C#编程指南:实现列表与WPF数据网格的高效绑定方法 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 在开发系统查询搜索功能时,需注意以下几点以提高信息检索效率:首先,在SQL语句中,每个参数占位符“?”后必须紧跟相应的参数赋值,确保参数与赋值一一对应,避免因参数不匹配导致的错误。其次,进行模糊搜索时,若用户输入通配符“%”,可能会导致全表扫描,因此需要对输入的“%”进行特殊处理或限制,以防止不必要的性能开销。此外,建议使用索引优化查询速度,并合理设计搜索逻辑,以提升用户体验。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 在《PHP应用性能优化实战指南:从理论到实践的全面解析》一文中,作者分享了一次实际的PHP应用优化经验。文章回顾了先前进行的一次优化项目,指出即使系统运行时间较长后出现的各种问题和性能瓶颈,通过采用一些通用的优化策略仍然能够有效解决。文中不仅详细阐述了优化的具体步骤和方法,还结合实例分析了优化前后的性能对比,为读者提供了宝贵的参考和借鉴。 ... [详细]
  • 深入解析:Explain命令的应用与字段详解
    深入解析:Explain命令的应用与字段详解 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文将详细介绍在Android应用中添加自定义返回按钮的方法,帮助开发者更好地理解和实现这一功能。通过具体的代码示例和步骤说明,本文旨在为初学者提供清晰的指导,确保他们在开发过程中能够顺利集成返回按钮,提升用户体验。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
author-avatar
573079756_3618db
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有