PHP
php相关技术及踩坑分享
魑魅魍魉魃魈魁魅
醉后不知天在水,满船清梦压星河。
展开
-
Drupal编辑页面中将指定字段放入右列
Drupal编辑页面中将指定字段放入右列原创 2023-04-21 09:54:23 · 144 阅读 · 1 评论 -
Drupal 在views data export模块将导出数据写入文件之前修改数据
今天在用drupal 的views data export 模块做数据导出的时候发现导出的结果与预期的之不符合;调查了下,发现views的hook中处理的结果并不在导出的结果中显示,如果要对导出的数据进行处理,可以使用 hook_views_data_export_row_alter 函数,这个是views data export 模块的hook函数(views data export 最好是最新版本,我用的1.0不行,更新到1.3就可以了)。原创 2023-04-13 17:31:40 · 163 阅读 · 0 评论 -
宝塔面板升级踩坑:ImportError: class/PluginLoader.so: undefined symbol: PyImport_GetModule
今天在宝塔面板升级了PHP8,但是站点的PHP版本选择仍然没有PHP8以上的版本,百度了一下说是要升级宝塔面板,于是在面板首页右上角进行了升级;搜了一下没找到解决方案,看到一个类似的错误说是不能再宝塔自带的终端执行,想了下我是在面板首页右上角的升级按钮,估计也是面板的自带终端执行的命令;果然看到一些下载安装,最后提示升级成功。返回安全登录入口刷新,登录页面就正常了。原创 2023-03-15 22:59:30 · 667 阅读 · 1 评论 -
Drupal9自定义module添加多个定时任务
Drupal9自定义module添加多个定时任务原创 2022-12-07 16:55:25 · 413 阅读 · 0 评论 -
Drupal9自定义实体新增的字段在view的字段新增中找不到;自定义实体新增字段踩坑
Drupal9自定义实体新增的字段在view的字段新增中找不到自定义实体新增字段原创 2022-11-28 15:13:05 · 444 阅读 · 0 评论 -
Drupal踩坑:为后台管理界面的view 列表的字段标签添加自定义属性
Drupal踩坑:为后台管理界面的view 列表的字段标签添加自定义属性原创 2022-11-24 13:28:09 · 191 阅读 · 0 评论 -
宝塔SSL踩坑:SSL证书域名验证无反应
宝塔SSL踩坑:SSL证书域名验证无反应原创 2022-11-21 21:26:49 · 3609 阅读 · 0 评论 -
Drupal view实现排序:未来升序,过去降序
Drupal view 排序:未来升序,过去降序原创 2022-09-19 18:28:37 · 196 阅读 · 0 评论 -
Git合并多次commits
Git合并多次commitsphpstorm操作git命令方式原创 2022-06-21 16:01:34 · 1392 阅读 · 0 评论 -
Drupal9学习笔记之views过滤条件(排除动态ID、动态分类相关筛选)
views过滤条件(排除动态ID、动态分类相关筛选)原创 2022-05-24 13:56:32 · 196 阅读 · 0 评论 -
Drupal9笔记之block权限踩坑
block权限踩坑原创 2022-03-25 17:00:42 · 227 阅读 · 0 评论 -
drupal笔记之block缓存踩坑
block缓存踩坑,compsoer打补丁原创 2022-03-23 18:08:35 · 536 阅读 · 0 评论 -
Drupal9笔记之修改表单提交的数据
Drupal9笔记之修改表单提交的数据原创 2022-03-17 15:28:31 · 262 阅读 · 0 评论 -
Drupal9踩坑笔记之获取菜单信息
Drupal9踩坑笔记之获取菜单信息原创 2022-03-16 12:00:12 · 220 阅读 · 0 评论 -
Drupal9踩坑之本地csp加载失败问题
application.js:formatted:5054 Refused to connect to 'http://assets-uat.talpfizer.com/a93956df-d016-4a8a-95f4-cb9d2650671a/uat/classic-sign_in-en-au.json' because it violates the following Content Security Policy directive: "connect-src 'self' blob原创 2022-03-02 15:02:01 · 586 阅读 · 0 评论 -
Drupal踩坑笔记之EventSubscriber(事件订阅)
Drupal踩坑笔记之EventSubscriber(事件订阅)原创 2022-02-23 15:47:40 · 311 阅读 · 0 评论 -
phpcs踩坑:.git/hooks/pre-commit: 行 10: phpcs:未找到命令
今天在使用git commit命令时遇到报错:.git/hooks/pre-commit: 行 10: phpcs:未找到命令上午还好好的,下午就报这错了,一开始想不应该是找不到啊,毕竟一直在用,想着找其他原因,结果找了半天都没找到,就到phpcs命令目录下执行 phpcs:好嘛,看来是不知道啥原因,phpcs失踪了,重新安装:再次执行命令:未安装“Drupal”编码标准。参考: https://www.drupal.org/project/infrastructure/issues/2原创 2022-02-10 14:29:10 · 513 阅读 · 0 评论 -
Drupal笔记:给没有值的字段添加自定义值
Drupal笔记:给没有值的字段添加自定义值原创 2022-02-09 19:32:44 · 286 阅读 · 0 评论 -
使用分享插件shareThis遇到的坑
分享插件shareThis使用outlook发送邮件踩坑记录原创 2022-01-19 10:43:59 · 826 阅读 · 0 评论 -
Drupal踩坑记录之menu高亮不显示或错误显示
Drupal踩坑记录之menu高亮不显示或错误显示原创 2022-01-19 10:34:38 · 383 阅读 · 0 评论 -
Drupal笔记之获取block的翻译内容
Drupal笔记之获取block的翻译内容原创 2022-01-18 14:29:58 · 163 阅读 · 0 评论 -
Drupal日常杂记
初学drupal杂记原创 2021-12-01 13:52:27 · 157 阅读 · 0 评论 -
Drupal9字段添加class
现在后天添加的文章有一个link类型字段,需要在link字段的a标签上加一个class;后台无法设置,于是在mytheme.theme中使用template_preprocess_field()添加:第一种写法只适合没有嵌套标签的字段。function pfyhmhk_preprocess_field(&$variables){ if ($variables['element']['#bundle'] == 'white'){ if (!$variables['multiple'])原创 2021-11-29 17:26:21 · 130 阅读 · 0 评论 -
使用Dompdf生成pdf文件及踩坑记录
安装dompdf安装参考:https://github.com/dompdf/dompdf我是通过下载安装的,这里最好是下载稳定副本,少踩坑。使用。dompdf的使用很简单,上面的参考也给出了示例,这里就不在赘述。我这里是将图片转pdf的,而前端给我的是base64数据,所以我使用img拼接成了html字符串。$dompdf->stream()是直接输出,因此如果是通过url访问就可以在不保存的情况下直接下载pdf文件。 $dompdf = new Dompdf(); $dom.原创 2021-11-26 10:54:51 · 1577 阅读 · 0 评论 -
PHP 获取所有汉字字母,首字母(封装类)
<?php/** *+------------------------------------------------------ * PHP 汉字转拼音 *+------------------------------------------------------ * 使用方法: * $py = new PinYin(); * echo $py->getAllPY("输出汉字所有拼音"); //shuchuhanzisuoyoupinyin *原创 2021-11-18 10:30:00 · 176 阅读 · 0 评论 -
PHP yield学习之生成器(Generator)
生成器类似于迭代器,但是又不一样。生成器允许在foreach中写代码迭代一组数据而不需要在内存中创建一个数组。这样避免了因数组过大而达到内存上限,影响运行效率。生成器函数与普通函数一样,不同的是,普通函数一次返回所需要的值,而生成器可以根据需要yield多次,生成需要迭代的值。生成器使用yield关键字生成迭代的值。生成器方法Generator implements Iterator { //返回当前产生的值public mixed current ( void ) //返回当前产原创 2021-11-17 17:46:22 · 230 阅读 · 0 评论 -
drupal9笔记:twig中获取当前时间戳
今天有各功能需要在views中根据当前时间判断是否显示数据,查了一下可以用下面两种方法:{{ ‘now’|date(‘U’) }} U表示Unix时间戳;{{ date().timestamp }}{% set now_time = 'now'|date('U') %}{% if now_time >= delegation_start and now_time <= delegation_end %}{{ field_full_name }}{% endif %}...原创 2021-11-17 17:14:54 · 266 阅读 · 0 评论 -
strtotime踩坑记录
strtotime() 无法识别 ‘m-d-Y’和‘d/m/Y’格式的日期。可以识别’Y-m-d’,‘d-m-Y’,‘Y/m/d’,'m/d/Y’的日期格式。原创 2021-11-17 13:16:15 · 79 阅读 · 0 评论 -
Drupal9踩坑:“Parameter 2 to xxx_views_query_alter() expected to be a reference“
问题:Warning: Parameter 2 to pfpaveau_visit_request_views_query_alter() expected to be a reference, value given in Drupal\Core\Extension\ModuleHandler->invokeAll() (line 403 of core/lib/Drupal/Core/Extension/ModuleHandler.php).出错代码:原因:这个hook的第二个参数 Ka原创 2021-11-17 10:32:49 · 154 阅读 · 0 评论 -
Drupal9 后端在node页面取到core的面包屑
装了个module: easy_breadcrumb原创 2021-11-16 09:26:34 · 339 阅读 · 0 评论 -
Drupal9 Ajax Form使用小技巧
这几天使用drupal的ajax form,因为第一次使用,本身对drupal也不熟,着实把我弄得够呛,摸索着总算搞定了,记录并分享一下使用心得,有错请指正!1、表单按钮的处理,因为是ajax,那么自然不能使用type=‘submit’的按钮,我这里根据需求做了三个按钮,一个是span的,作为显示和用户点击的,第二个是button的,是触发ajax的,第三个是submit的,触发真正的表单提交。这里踩了两个坑,详见:https://editor.csdn.net/md/?articleId=1213292原创 2021-11-15 11:30:40 · 506 阅读 · 0 评论 -
drupal踩坑:表单多按钮时,提交不生效
今天再写一个表单的时候,因为需要ajax提交,所以使用了ajax form:但是结果却出现表单提交的时候没有触发真正的表单提交,找了半天才发现是因为有两个value一样的button,第一个是触发ajax的button,第二个才是真正的表单提交button,因为value一样,所以无法触发第二个提交按钮。将两个value修改撑不一样的就可以了。PS1:相同的两个value还会引起其他报错:比如 “找不到回调或回调不可用“,PS2:报错 ‘找不到回调或回调不可用‘也可能是因为对submit作了修改导致原创 2021-11-15 10:19:39 · 498 阅读 · 0 评论 -
Drupal菜鸟笔记之views mode添加及使用
在创建页面的时候,有时候我们只需要一篇文章的部分数据,并不需要所的,如果页面是手动输入的数据,那只需要配置对应的字段或paragraphs即可。如果使用的是引用文章,而drupal默认的是default views mode;那么如何自定义views mode 呢?Home 》Administration 》Structure 》Display modes这里可以看到,除了views还有block,paragraphs都可以自定义mode;这里不多说。点击这里直接添加对应的mode。也可以原创 2021-10-15 15:46:37 · 104 阅读 · 0 评论 -
Drupal菜鸟笔记之Taxonomy显示配置
今天配置页面的时候,需要显示自定义的分类和分类说明。1、先在Taxonomy 创建分类数据2、创建content type3、添加字段,选择Taxonomy term,输入label进入下一步,然后保存。保存之后,进入Manage form display(后台页面显示配置);选择分类展现格式,Autocomplete是手动输入的时候自动补全完成;select list是下拉框。选择list,保存,进入Manage display(前台页面显示配置);这里可以选择显示格式Label:只显原创 2021-10-14 15:03:21 · 131 阅读 · 0 评论 -
Drupal菜鸟笔记之自定义内容实体及踩坑
因为drupal自带的log系统在项目上线之后不方便使用,于是就想自定义一个简单的日志实体,用于一些关键功能,方便出现问题的时候容易排查跟踪。因为是自己使用,不需要界面,因此是按照最简单做法。1、新建一个log模块,创建module_name.info.yml文件,这里的module_name就是模块名称。2、创建日志实体:在模块文件下创建src文件夹,在src文件夹下创建Entity文件夹,然后在Entity下创建实体文件:比如我这里是IxtendCustomLog.php我这里只是实现了 b原创 2021-10-08 17:22:58 · 315 阅读 · 3 评论 -
使用fastcgi_finish_request实现异步发送邮件踩的坑
最近做了一个异步发送邮件的功能,因为项目上的原因,没有使用第三方扩展,也没有使用常规的那四种方法(Ajax,popen,CURL,fsockopen),而是使用了fastcgi_finish_request来实现。先看fastcgi_finish_request的官方说明:(PHP 5 >= 5.3.3、PHP 7、PHP 8)fastcgi_finish_request — 将所有响应数据刷新到客户端此函数将所有响应数据刷新到客户端并完成请求。这允许在不保持与客户端的连接打开的情况下执行耗时原创 2021-10-08 15:33:54 · 673 阅读 · 0 评论 -
使用strtotime获取本月和下一月产生的bug
问题原因:strtotime在使用 date(“Y-m”, strtotime( “+1 month”)); 计算下月月份时,遇到大月的最后一天(31号)和1月的29 30 31时,因在下一月找不到对应日期,会顺延一个月。比如10月31日会先计算到11月31日,但11月只有30号,因为11月31日为被认为12月1日,所以得到的月份就变成了了12月,而不是想要的11月。解决办法:1、因为这里需要的只是月份,并不需要具体的自然日。所以可以先获取当月的月份,根据自然月来计算下一月的月份,就不会受到大小月以及.原创 2021-10-07 21:46:05 · 341 阅读 · 1 评论 -
register_shutdown_function踩坑记录(php程序终止后执行)
今天接触到一个新的php函数:register_shutdown_function()该函数是来注册一个会在PHP中止时执行的函数有时候我们在php程序执行完之后还想继续执行部分程序来完成一些工作。比如说用户提交数据后,先回复用户再处理某些数据。这时候就是register_shutdown_function发挥作用的时候了。看栗子:代码较多,只截取了一部分。采坑1:在register_shutdown_function函数内是脱离了框架的,所以很多在框架中直接使用的东西就不能用了。比如:另外原创 2021-10-07 21:40:06 · 397 阅读 · 0 评论 -
PHP依赖关系算法实现
/** * 根据依赖关系排序 * * @param array $fieldFeture 事情清单 * @param array $relationMapList 依赖关系清单 * @param array $relationRightValues 依赖关系值清单 * * @return array */public static function relationSort(array $fieldFeture, array $relationMapList, a.原创 2021-09-30 13:59:48 · 118 阅读 · 0 评论