我們去年就在emojiall.com這個網站中大量使用svg格式的矢量圖,包括各emoji圖片廠商和平台提供的svg矢量圖以及我們自己的排行榜、情緒分析等原創生成的svg圖,有一些svg是直接把svg代碼放置在頁面的html中,最近把一部
PHP
這是 PHP 分類的頁面,點擊下面标題查看詳細文章内容:
2019年我們就開始用PHP繪圖功能在網站上輸出圖片,除了在線輸出PNG圖片以外,我們還做了輸出GIF動畫圖、SVG矢量圖等功能,在網站中應用的效果也非常好。
不過也發現爬蟲過多的時候,對服務器負載和帶寬有比較大的影響,于是我們最近采取了幾項措施。
首先是接入了Cloudflare或者百度雲加速,讓圖片可以保存到CDN中,這樣降低了很多源站訪問。
但有個别站圖片數量非常多,緩存效果不明顯,我們就幹脆把PHP在線生成圖片改為了讀取保存在磁盤中的.png文件,這樣相當于又添加了一級緩存,免除了讀取對應數據庫、調用字體字庫、圖形繪制等
好些年前,我們的網站就用PHP程序來動态生成robots.txt和sitemap.xml,其中網站地圖用php來動态生成而沒有保存成文件,因為有些站網址太多,怕sitemap文件過多、過大而占用磁盤空間。雖然動态生成會對數據量很大的數據庫有一定影響,但經過一些優化還是可以承受的。但URL很多的網站還存在另外一個問題,就是sitemap被大量爬取,占用帶寬,這個問題因為不是很普遍、很迫切,所以就一直放着沒有動,隻是把有一個站的php程序中添加了延時來讓爬蟲慢一點。
在使用MediaWiki的幾年間,我是不會PHP程序的,後來改Drupal,被迫學了一些PHP,但寫起來都不多,在開源程序的基礎上做點小修小改,也不講什麼規範,但後來改動慢慢積累多了,再後來招聘了更多的程序員加入,程序的規範性就顯得重要起來了。
今年
Drupal中以前都是用node方式來呈現數據,content type設置好字段後,有現成的辦法來實現内容呈現和編輯。但後來比較多用到自建的數據表,呈現一般還是用Views來實現,也可以用SQL語句來實現,而修改數據表中内容最開始用阿裡雲RDS後台,後來改用自己寫的form展示和輸入修改提交。
昨天同事又說到另外一個類似的需求,我花了幾個小時來做,這次幹脆把以前呈現表單、提交結果兩個頁面合并為一個頁面,通過判斷這個頁面的$_GET和$_POST參數來做适當的操作,在Drupal的自定義模塊中的PHP程序代碼如下:
/** *
PHP升級到7以後直接用file_get_contents和get_headers讀取https開頭的URL會報錯:
Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Warning: get_headers(): Failed to enable crypto Warn
前些天記錄了一篇《PHP生成漢字轉Emoji的對照圖片》,在此之前都是用PHP的GD擴展實現繪圖,還隻能做靜态的圖片出來,這些天在家閉關養傷,花了很多時間來進行“國語辭典系列網站全面升級”,這期間也摸索出來PHP利用Imagick擴展來繪制GIF格式動态圖片的辦法,現在記錄如下。
Imagick 是用 ImageMagic API 來創建和修改圖像的PHP官方擴展,詳細介紹請看《Imagick官方文檔》。
ImageMagick® 是用來創建,編輯,合并位圖圖像的一套組件。 它能夠用于讀取,轉換,寫入多種
今年用PHP的繪圖功能做了一些工作,例如為郵編庫添加信封例子、為查号吧添加聯系名片等,感覺還可以起到一定作用。當時記錄了一篇博文《用PHP繪圖功能在網站上輸出圖片》。
這幾天把Emoji的圖片也與漢字字體圖融合,生成漢字與Emoji對照的圖片,也别有一番風味。前天記錄了一篇《更多網站添加中文轉Emoji的功能》,
昨天做的是一個或者多個漢字轉Emoji圖片(其中每個漢字與一個Emoji對照),例如《成語詞典》中的“刻舟求劍”:
今年初開始使用《用PHP繪圖功能在網站上輸出圖片》,在一些網站上輸出直觀的圖片,自己感覺效果還是不錯的。 前幾天在修改一個站的模塊、模闆時,突然發現以前可以正常顯示的圖片不能顯示了,隻剩下一個16x16的空白圖片,這下子影響就大了,感覺在網上搜索相關資料,搜到這篇《PHP : imagepng and imagejpeg output invalid 16x16 image [closed]》,描述的情況、附上的截圖幾乎和我一模一樣。 但我依然沒有查出具體問題和解決辦法,晚上回家後繼續檢查,剛準備去.php文件設置增加php的内存試一試
前兩周同事開始對阿裡雲服務器上的PHP 5升級為PHP 7,遇到的問題以及解決辦法我記錄在《PHP5.x升級到PHP7.x後Drupal網站出現的問題》一文中,本周對MediaWiki所在服務器要進行升級,所以先進行了一些測試,把Wiki站文件複制到已經升級為PHP 7.3.5的服務器上,馬上看到了一堆報錯,逐個去檢查、搜索、修改以緻全部解決,下面也來進行一些記錄。
首先在MediaWiki官方網站上找到MediaWiki各個版本對PHP的要求,我們目前的MediaWiki 1.27支持PHP 5.5.9+, 5.6.x, 7.0.x, 7.1.x,并沒有說支