之前备忘了php 的,也把js的写一下吧,懒得费脑子写连记住都觉得浪费能源。

//验证手机号合法性
function valid_phone(phone){
    var flag = false;
    var myreg = /^(1[3-9]{1}[0-9]{9})$/;
    if (phone == '') {
        console.log("手机号码不能为空");
        //errmsg = "手机号码不能为空!";
    } else if (phone.length != 11) {
        console.log("请输入11位手机号码!");
        //errmsg = "请输入11位手机号码!";
    } else if (!myreg.test(phone)) {
        console.log("请输入有效的手机号码!");
        //errmsg = "请输入有效的手机号码!";
    } else {
        flag = true;
    }
    return flag;
}

errmsg 和 console.log 输出都是没用的,只是以防需要额外的交互。

Okay长话短说。实际上有点标题党,因为最终的解决方啊并非直接用纯PHP实现了旧版word文件的处理。
由于时间已经不早了,为了争取续命睡眠的时间,我会在项目做的差不多之后在回顾之时补完这篇日志。

需求背景

由于甲方的一些客观条件约束。有一大批原始素材内容是旧版word格式(.doc) 。希望能直接从固定格式的文档内提取和整理内容导入数据库。
服务端环境为linux

备选方案

  1. PHP自身的扩展 php_com_dotnet.dll
  2. PHP的第三方插件PHPWord
  3. PHP调用服务器的第三方程序antiword
  4. 和上一个解决方案类似,后端用Python 跑一个服务监听待处理word文档队列,异步处理。

在可行性研究阶段目前已经否决了前3种方案,正在用第四种方法迂回实现需求。



- 阅读剩余部分 -

具体原音还没时间细究,只知道修改若干设置后(开启了硬件转码加速,增加了字幕插件 open subtitle)无法启动jelyfin。

查进程在
查看日志

tail -f /var/log/jellyfin/jellyfin.log

[2019-11-20 04:08:21.918 +08:00] [INF] Processor count: 4                                                                                                                                                          
[2019-11-20 04:08:21.919 +08:00] [INF] Program data path: "/var/lib/jellyfin"                                                                                                                                      
[2019-11-20 04:08:21.920 +08:00] [INF] Web resources path: "/usr/lib/jellyfin/bin/jellyfin-web/src"                                                                                                                
[2019-11-20 04:08:21.921 +08:00] [INF] Application directory: "/usr/lib/jellyfin/bin/"                                                                                                                             
[2019-11-20 04:08:23.051 +08:00] [INF] Setting cache path to /var/cache/jellyfin                                                                                                                                   
[2019-11-20 04:08:23.281 +08:00] [INF] Loading assemblies                                                                                                                                                          
[2019-11-20 04:08:23.354 +08:00] [INF] Loaded assembly "Emby.AutoOrganize, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" from "/var/lib/jellyfin/plugins/Auto Organize/Emby.AutoOrganize.dll"             
[2019-11-20 04:08:23.366 +08:00] [INF] Loaded assembly "OpenSubtitlesHandler, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" from "/var/lib/jellyfin/plugins/Open Subtitles/OpenSubtitlesHandler.dll"      
[2019-11-20 04:08:23.374 +08:00] [INF] Loaded assembly "Jellyfin.Plugin.OpenSubtitles, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null" from "/var/lib/jellyfin/plugins/Open Subtitles/Jellyfin.Plugin.OpenSu
btitles.dll"                                                                                                                                                                                                       
[2019-11-20 04:08:23.411 +08:00] [INF] Disposing "CoreAppHost"                                                                                                                                                     

卡在 Loaded assembly "OpenSubtitlesHandler" 猜测是插件问题,机器固件是网友重改的,所以支持与否不太确定,决定还原。


- 阅读剩余部分 -

作死警告!! 谨慎操作!

最近下载一个资源,资源组规避云盘的自动审核规则,把全部的 mp4文件 改名为 .mp 几百个文件需要一个个手改太败兴。备忘一下怎么处理

在win10,可以进用bash 当做ubuntu操作,美滋滋。

开始之前,再次

危险操作警告!未清楚参数命令效果与意义前不要模仿!注意再三检查执行的路径和影响范围

进入指定路径,执行以下指令

递归查找 .mp 文件重命名为 .mp4

find  . -name  '*.mp' -type f -print -exec mv {} {}4 \;

参数记忆:
-type f 只查找文件类型,忽略文件夹
-print 输出包含完整路径
-exec 把前面的结果 赋值给后面的变量 {} ,且执行后面的子命令,直到 \; 结束
语法解读:
查找当前路径下 所有的 *.mp ,对符合的【文件】执行 重命名为 "原文件名4" 的操作

批量删除 .tmp 文件

find  . -name  '*.tmp' -type f -print -exec rm {} -f \;