jpgraph安装配置教程详细介绍
在学习了之前两篇php jpgraph安装教程后,只要jpgraph类库通过了PHP安装环境的验证后,就可以正式安装jpgraph类库了,其实jpgraph类库的安装非常方便,只要将下载的jpgraph类库解压缩至已搭建的PHP环境下的相关目录下即可。jpgraph安装过程的关键在于PHP配置文件php.ini与jpgraph配置文件jpg-config.inc.php配置。下面我根据jpgraph类库的英文文档进行说明,希望对使用jpgraph类库的PHP开发者有所帮助。
jpgraph类库安装
当通过之前的jpgraph类库安装条件的验证后,就可以安装jpgraph类库了。所谓的安装其实就是将文件解压拷贝到一个你的PHP程序可以找到的目录结构中,在Unix系统中很常见的安装目录是/usr/share/php/,在Windows系统中没有标准的安装目录,你需要根据你安装配置PHP环境时设定的目录自行决定。
这里非常重要的一点是当你使用PHP语句require_once或include时能够找到jpgraph类库。推荐jpgraph的安装目录结构为jpgraph/。
假设你已将下载jpgraph类库之Unix系统的tmp目录下,那么在Unix服务器上的安装命令如下
1 |
root:/tmp> tar xzf jpgraph-2.5.tar.gz |
最后一条Unix命令的意思是为实际的jpgraph版本类库目录位置建立一个连接。当我们需要在不同的目录用到jpgraph类库时,就不需要在每个目录下都放一个jpgraph类库,只需要在固定目录中存放jpgraph类库,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
PHP开发服务器上配置jpgraph类库的说明
配置php.ini配置文件
配置PHP的内存
在绝大多数默认配置的PHP环境中,都没有足够的内存供jpgraph程序使用,由于其需要很多内存,所以在配置时最少需要32M内存。打开php.ini配置文件并定位到
1 |
memory_limit = xx |
xx是具体的数字,将其修改为32MB,即
1 |
memory_limit = 32M |
jpgraph类库使用内存特别说明:当你需要创建非常大的图片时,这些内存可能是不够的,比如,假设你需要创建一个1200*1024大小的图片。意味着,就光其自身就需要1200*1024*4字节,即4.7MB RAM,当php jpgraph类库在内部处理时大约需要三倍的内存,也就是说最少需要15MB RAM。如果再需要内存加载PHP和整个jpgraph类库并动态执行和解析,那意味着另外需要至少15MB RAM。如果图片非常复杂,需要创建更多的对象(一个典型的例子是大甘特图)那么就需要双倍的内存即64MB RAM。(其实个人觉得这段是告诉你使用jpgraph类库时如何根据需要处理的图片大小计算出大致的内存)。
配置PHP最大执行时间
默认配置的PHP最大执行时间非常短。通常都在10秒左右。对于一般的互动或纯文本处理是足够的。但是处理大型复杂的图片需要更多时间。正因为这个理由,PHP最大执行时间最少需要增加到20秒。(根据你的图片复杂度和相关数据的处理,需要增加到30-40秒)
与之相对应需要修改php.ini配置文件中的max_execution_time选项,即将
1 |
max_execution_time = xx |
修改为
1 |
max_execution_time = 30 |
禁止缓存输出
打开php.ini配置文件,找到output_buffering选项,并将选项修改为
1 |
; output_buffering = xx |
也就是注释掉缓存输出。
禁止缓存输出的原因是在PHP开发期间,我们需要能够看到jpgraph类库潜在的错误信息,而开启缓存会阻止错误信息及时出现。要理解这些需要知道一些HTTP协议的基本原则。特别是MIME编码数据是如何工作的。
下面简单描述下HTTP协议:
1、当你在游览器中输入一个URI地址时,游览器主要通过GET或POST命令从服务器上请求数据。
2、服务器回复一个数据流(或者数据不可用时会返回一个错误信息)。数据流中的前缀MIME信息告知游览器如何解析数据。最常用的类型是text/html。即告知游览器以嵌入HTML编码的纯文本方式解析数据。
当数据要求被解析为图片时,数据流的前缀MIME信息是image/png或image/jpeg。当游览器受到MIME信息时就会以指示的图片编码格式解析下面的图像数据。
这里需要特别注意的是每台服务器只能回复一个MIME类型。这是进一步理解生成动态图形的关键。这就解释了为什么运行PHP程序的服务器发送的头部信息首先显示其数据需要被解释为图片而不是同时发送图片和文字。
现在来解释下为何输出缓冲会使得调试jpgraph类库会更加困难。
通常PHP程序的所有输出都是有顺序的,比如首先必须发送头部信息然后再发送数据。如果没有头部信息输出或输出了没有头部信息的文本,游览器会解析为text/html格式。缓存的一个目的是允许数据存放一段时间,当决定发送什么类型的头部信息时,发送完头部信息后再将数据输出。
开启缓存可能会发送下面的情况
1、程序开始执行,图片开始生成。
2、此时你的PHP程序可能会产生一些小问题。这些错误信息没有被直接输出至游览器而是允许你将这些错误信息存放至缓存区中。当之后程序开始输出图片头部信息和图片数据时其会将这些数据添加至之前存放那些错误信息的缓存区中。
3、当游览器受到这个头部信息显示需要将下面的数据解析为图片时,由于这些图片数据混合了之前的错误信息,解析这些数据时就会失败同时出现红叉(FireFox)。
当关闭缓存后,调试jpgraph程序时出错信息会及时输出至游览器,以便于你及时处理。
开启适当的错误检查
在这部分需要调整PHP错误报告级别。即使开启所有PHP错误报告等级,jpgraph类库也可以安全运行。
错误等级设置为最高,即
1 |
error_reporting = E_ALL E_STRICT |
注意:除了错误等级之外,最好下面的选项也进行配置
1 |
zend.ze1_compatibility_mode = Off |
设置默认时区
自PHP5.2开始如果没有设定默认时区时使用jpgraph类库会出现错误。你只需要打开php.ini配置文件,定位到date.timezone =修改为Asia/Shanghai即可。
配置jpg-config.inc.php
除了jpgraph标准配置中所说的安装和配置字体支持等,这里只有一个重要的jpgraph配置是专门针对开发服务器的,那就是配置错误信息输出的本地化。
jpgraph 3.x版本支持三种选项
1、en(英文错误信息)
2、de(德文错误信息)
3、prod(应用在产品服务器上)
只需要打开jpgraph类库配置文件jpg-config.inc.php,定位到
1 |
|
进行修改即可。
除了通过修改jpgraph类库配置文件还可通过在每个程序代码中动态调用进行修改,方法如下
1 |
|
产品服务器上的jpgraph类库及PHP配置说明
在这部分由于面向的最终用户是访问者,所以需要进行部分修改,大部分和在开发服务器上的jpgraph配置一致,主要有两方面的jpgraph配置不同
开启适当的错误等级
在产品服务器上显示所有错误信息不是一个明智的决定,应该禁止显示所有错误信息并将其保存在日记文件中。
所以修改php.ini配置文件中的如下选项
1 |
display_errors = Off |
指定log日志文件的存放目录。
配置jpg-config-.inc.php
主要是将jpgraph类库的错误信息选项配置为prod,即
1 |
|
调整PHP include path
主要通过两种方式修改,一种是修改PHP配置文件php.ini并定位到include_path选项,增加jpgraph类库的安装目录,另一种是通过php_ini_set函数在PHP代码头部增加include_path。
修改include_path主要是为了使用include或require_once包含jpgraph.php文件的便捷性和统一性。
至此,jpgraph类库的详细安装配置教程就介绍完了,通过修改PHP配置文件和jpgraph配置文件可以为今后使用jpgraph类库打下坚实的基础。
注:PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。
