我记忆中我们从2010年开始使用Drupal搭建网站,从开始的Drupal 6到随后主流的Drupal 7再到目前最新的Drupal 8,始终都是使用的PHP 5.x,前几年PHP 7刚刚出来的时候我们也安装过,但发现网站很多报错后就退回了PHP 5.x。
今年Drupal 8的最新版本已经说了不再支持PHP 5.x,需要升级到PHP 7.x,再加上我们看了一些文章说PHP 7的性能比PHP 5提升几倍,这对我们也很有吸引力,想到迟早也得升级的,于是再次尝试升级PHP版本。
这是 PHP 分类的页面,点击下面标题查看详细文章内容:
我记忆中我们从2010年开始使用Drupal搭建网站,从开始的Drupal 6到随后主流的Drupal 7再到目前最新的Drupal 8,始终都是使用的PHP 5.x,前几年PHP 7刚刚出来的时候我们也安装过,但发现网站很多报错后就退回了PHP 5.x。
今年Drupal 8的最新版本已经说了不再支持PHP 5.x,需要升级到PHP 7.x,再加上我们看了一些文章说PHP 7的性能比PHP 5提升几倍,这对我们也很有吸引力,想到迟早也得升级的,于是再次尝试升级PHP版本。
今年以来Drupal的版本升级似乎加快了,而且多是属于与安全有关的升级,不得不去进行。上周发现Drupa 7网站上有提示Drupal 7.66需要升级到最新的7.67,而且是SECURITY UPDATE。⚠
想到前几次小版本升级用drush也很简单,就也运行drush up来进行升级,升级完成后却发现一个下面这样的报错:
❌PHP Fatal error: Class 'finfo' not found in /.../misc/typo3/phar-stream-wrapper/src/Pha
Drupal里面Views功能很方便、强大,而在PHP程序中调用Views的Page或者Block也很需要,有时还可以起到替代写SQL语句的作用,不过需要带参数变量Block的调用不太常见,以前用过也老是忘记调用办法,昨天又花时间找了一下,现在就记录下面,免得以后又到处去找。
views_embed_view('views_name', 'page_or_block_id', 'variable');
详情请看Drupal官方网站中的API文档:views_embed_view
我们的很多信息查询网站基本上都是提供纯文字内容,没有图片,只有少数网站(例如字典)有图片、音频素材我们才能在网站上提供。
其实PHP是有绘图功能的,可以根据文字内容生成需要的图片,我们去年曾经在一个繁体字库网站尝试了PHP生成图片,是可行的,但后期一直没有推广运用,最近又把这个事情重拾起来,进行了尝试,下面是一个简单的从矢量字库获取数据生成图片的PHP片段例子ziku_ziti.php:
<?php header("Content-type: image/png"); if (isset($_
最近写了几段PHP程序,给同事来导入数据到MySQL数据库,同事偶尔反映遇到这样类似的报错:
PDOException: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'state' at row 1: UPDATE `table` SET `address` = 'xxx', `state` = '过长内容', `id` = 
很多年前我们Drupal网站采用了Bartik主题作为电脑版、Mobile主题作为手机版,两个版本采用不同的网址可以互相跳转切换,后来进行了改版,把电脑版、手机版合二为一做成了响应式版本,使用的主题是Responsive Bartik。投放广告则采用了Google AdSense的响应式广告代码。
最近因为国内浏览器、运营商对AdSense屏蔽太狠,所以部分国内站改用了百度联盟的广告,并试用了反广告屏蔽代码,效果还不错。但百度联盟一直都没有响应式格式广告代码可用,只能分为手机、电脑两种版本来创建广告单元、获取代码。
在MediaWiki
我们使用LAMP结构搭建网站已经有12年了,前面很多年PHP都是没有加缓存优化,CPU很吃力,只能拿硬件扛,16核CPU算是一般的配置。2014年我们才安装了PHP代码缓存的APC模块,还在Drupal单服务器设置Memcache缓存,APC对Web服务器CPU的压力降低了很多,Memcache对于MySQL的压力降低了很多。
再后来服务器搬迁到阿里云,系统安装的PHP版本是5.6.x,自带了OPCache,只需要在php.ini中开启就可以,使用起来效果也不错。
安装和配置办法我就不复制过来了。我们自己最近遇到CPU占比持续达到100
《百度MIP版本链接的批量提交》中获取、整理URL是靠手工进行,设置crontab定时文件也是用手工编辑,这两项都很费时。昨天把第一项工作用程序实现了,详见《从XML网站地图中获取纯URL网址的PHP程序》,今天干脆把第二项工作也用程序来生成。
直接贴PHP程序代码:
<?php /* * create cron file for submit mip urls to baidu * jamesqi 2017-8-31 * */ // please set below: $start_month
在向百度站长平台提交MIP (Mobile Instant Page - 移动网页加速器) 网址的时候,我们采用了《百度MIP版本链接的批量提交》一文中的办法,这样确实可以定时自动提交,不过要整理出需要提交的网址文本这个过程很耗时,特别是我们一些站点的网址数量庞大,用浏览器一页一页访问sitemap页面、保存、合并、替换、上传等每个环节都需要手工操作并苦苦等待。
今天下午干脆花了一些时间来编写了一个PHP程序,设置一些参数后,自动读取预设的sitemap网址、下载数据并进行替换、合并、保存到指定文件名下,整个过程无需手工操作,即使读取sitemap网址依然比较
很多年前写过一篇《MediaWiki克隆繁体网站》,这个办法创建的繁体版本网站一直用到现在,而且也无需懂太多PHP知识,只是修改了很少量的设置和代码。
今年又尝试了《Drupal中文网站简体版本自动生成一个对应的繁体版本》,也是非常方便。我是在自建的“中文简体繁体转换的模块”中添加一个转换函数,然后在各个地方调用这个函数(PHP程序请看我另外一篇博文《一个独立可用的中文简体繁体转换PHP程序》)。
现在想让Wiki网站做一部分内页链接到Drupal站,但遇到原始页面都是繁体而目标网址都是简体的情况,需要在Wiki
2002-2023 v11.7 a-j-e-0