我記憶中我們從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