【PHP程式設計+MySQL資料庫+PHPMaker整合教學+技術諮詢】 本月特價優惠中! 動態的架站程式時代,要自訂PHP程式頁面有那麼難嗎? MySQL『資料庫』與『資料表』,用PHP程式有那麼難控制嗎? 你不用死背『PHP程式』與『MySQL資料庫』語法也能獨自設計完成! 這是自動化軟體程式的年代 (用PHPMaker 設計在彈指之間就能自動生成整個 PHP 程式系統) 這不是:神話!程式軟體模組取代了這一切複雜的工程。 你可以自己建構自己專屬的: 訂購表單、會員名單、擴增購物車特殊頁面 →POS 系統、CRM 系統、ERP 系統、HRM 系統...等等 (更可以加入數據資源銷售賺錢!) 該是:【見證奇蹟】的時候了! 非親眼所見....真的無法相信此神兵利器!

PHPMaker 資料庫快速生成全套 PHP 腳本 是一個功能強大的自動化工具,可以從MySQL 、 PostgreSQL 、 Microsoft SQL Server 、 Oracle 和 SQLite 。
使用 PHPMaker,您可以立即建立網站,容許使用者檢視、編輯、搜尋、加入和刪除網路上的記錄。
PHPMaker 還可以使用JavaScript (HTML5) 圖表(柱形圖、條形圖、折線圖、餅圖、面積圖、圓環圖、多系列圖和堆積圖)
建立匯總報告、交叉表報告、日曆報告和控制台,以匯總和可視化您的資料。 PHPMaker 的設計具有高度彈性,並具有多種選項來生成最適合您需求的 PHP 應用程式。
生成的代碼乾淨、簡單且易於定制。
PHP 腳本可以在 Windows 伺服器或 Linux 伺服器上運行。

PHPMaker 可以為您節省大量時間,並且適合初學者和經驗豐富的開發人員。

 

PHPMaker旨在實現高度彈性,眾多選項使您能夠生成最適合您需求的PHP應用程式。
生成的代碼清晰,易於理解且易於定制。

PHP腳本可以在Windows伺服器(MySQL / PostgreSQL / Access / MSSQL)或Linux / Unix伺服器(MySQL / PostgreSQL)上運行。
PHPMaker可以為您節省大量時間,適合初學者和經驗豐富的開發人員。

e-World Tech PHPMaker(php代碼生成器)是一款由e.World Technology開發的自動PHP代碼生成輔助工具。
一種基於Windows平台上運行的MYSQL資料庫自動生成PHP腳本的軟體。

使用生成的PHP代碼,您可以通過WEB網頁瀏覽,修改,查詢,加入和刪除資料庫記錄。
有了它,您只需幾步即可獲得完整的PHP代碼與網站所影生成之頁面與檔案。

最神奇的是:連後台管理介面都可以快速生成(可以設定:多層級使用者管理)超級好用!


 

PHPMaker v2023 主要功能:
– 所有腳本都正確連結
– 每個表/檢視的可選清單,加入/複製,檢視,編輯,刪除,多次更新和搜尋頁面。 (參見表格設定)可訂做的表格顯示順序。
– 在清單頁面中可選的網格加入,網格編輯,內聯加入,內聯複製,內聯刪除,內聯編輯
– 在進入或更新記錄之前的可選確認頁面
– 清單/檢視頁面中的尋呼機
– 每個欄位的完全可訂做的檢視和編輯格式。 (請參閱現場設定)可訂做的欄位顯示順序。
– 伺服器端驗證和/或用戶端JavaScript驗證
– 具有搜尋結果突出顯示的可選搜尋功能(快速,延伸快速和進階)
– 可選的使用者ID和使用者級進階安全性,以保護資料免受未經授權的訪問。 (請參閱安全設定)支援動態使用者層級和分層父級使用者ID。
– 完整的使用者註冊系統,可選使用者啟動
– 可選的HTML設定。 charset,font,CSS,可預定的訂做主題。 (請參閱HTML設定)
– 選單編輯器
– 多個主/細節頁面
– 各種PHP選項。字集,區域設定,預設日期格式等。 (請參閱PHP設定)
– 從項目檔案中儲存和還原項目
– 將項目設定與資料庫中的變更同步。
– 自動在IIS中建立虛擬目錄
– CSS樣式表整合
– 欄位聚合(總和,平均值和計數)
– 具有內建可視化查詢構建器的訂做檢視
– 基本報告
– 從清單/檢視頁面匯出為印表機友好/ HTML / Word / Excel / CSV / XML
– 多列排序
– 使用者可選取的頁面大小
– 特定於表的清單頁面選項
– 檔案上傳到資料夾和資料庫
– 動態表加載
– 複合鍵
– 突出顯示並選取行彩色
– 自動建議文字方塊
– 自動填充以在選取尋找欄位的值時填充關聯欄位值
– 動態地向選取清單加入選項
– 具有多種選取支援的動態選取清單(SELECT,RADIO和CHECKBOX)
– 自動登入和自動重定向
– 多頁面加入/編輯/檢視頁面作為帶有頁面標題的索引片
– 審計追蹤
– 加入/編輯/刪除電子信件知會
– 可選的CAPTCHA系統
– 檔案上傳到資料夾和資料庫
– 動態表加載
– 伺服器事件和用戶端腳本
– 代碼庫
– MD5和區分大小寫的密碼
– 完全可定制的模板和延伸

這裡有【PHP 網頁.網站設計軟體】PHPMaker v2023 教學全套完整培訓:
https://por.tw/php/new-E_learning/index.php
補充說明:
PHPMaker v2023 全不是英文介面(目前只有總教頭獨家中文化,購買課程可以獲得中文化介面),PHPMaker雖然功能強大,但是如果沒有透過專家指導,根本很難有好的成果,千萬不要自己摸索,很浪費時間(又需要資料庫與程式相互對應),所以跟總教頭學習PHPMaker是最快.最省事.最能充分運用的好途徑!

PHPMaker 2023 – 功能強大的PHP自動化網站程式+資料庫 設計與生成工具

PHPMaker是一個強大的自動化工具,可以從MySQL、PostgreSQL、Microsoft SQL Server、Oracle和SQLite快速生成全套PHP腳本數據庫。
使用 PHPMaker,您可以立即創建網站,允許用戶查看、編輯、搜索、添加和刪除網絡上的記錄。

PHPMaker 還可以使用 JavaScript (HTML5) 圖表(柱形圖、條形圖、折線圖、餅圖、面積圖、圓環圖、多系列圖和堆積圖)創建匯總報告、交叉表報告、日曆報告和儀表板,以匯總和可視化您的數據。
PHPMaker 的設計具有高度靈活性,並具有多種選項來生成最適合您需求的 PHP 應用程序。生成的代碼乾淨、簡單且易於定制。

PHP 腳本可以在 Windows 服務器或 Linux 服務器上運行。PHPMaker 可以為您節省大量時間,並且適合初學者和經驗豐富的開發人員。

PHPMaker 2023 的新增功能

PHPMaker 2023 是之前版本的又一次巨大升級。它加載了許多新功能,包括許多經常請求的功能。PHPMaker 可能是同類產品中最強大、最靈活的產品,但仍然一如既往地易於使用。

重要信息 如果您從以前的版本升級,請注意此版本中有一些重大更改,請確保您先閱讀遷移到 v2023 。

 

日曆報告

  • 使用 FullCalendar 進行日曆報告
  • 模態添加、編輯、刪除、查看事件頁面
  • 事件的彈出窗口
  • 日曆中的上下文菜單
  • 預定義的 CSS 類可輕鬆設置事件和彈出窗口的樣式


日曆報告(“dayGridMonth”視圖)


上下文菜單


具有匹配風格的彈出框

 

增強的儀表板報告

  • Ajax 的分頁報告
  • 通過 Ajax 對報告和圖表進行排序
  • 支持導出
  • 每個報告/圖表的卡片刷新/最大化/折疊

 

雙因素身份驗證(使用第三方 API 的電子郵件和短信)

除了 Google Authenticator 之外,雙因素身份驗證功能現在還支持:

  • 通過電子郵件發送一次性密碼
  • 使用第三方 API(例如 AWSSNS)通過 SMS 進行 OTP

 

 

固定頭表(無擴展)

  • 現在內置
  • 提供預定義的 CSS 類,以便輕鬆設置表格高度

 

查詢生成器

  • 構建高級搜索無法實現的複雜查詢
  • 允許為每個字段選擇搜索運算符
  • 每個字段有多個規則
  • 每組字段之間的 AND/OR 條件
  • 多組規則
  • 組之間的 AND/OR 條件
  • 組的 NOT 條件

 

用於編輯選定記錄的多重編輯

作為多重刪除和多重更新的補充,這一新功能允許通過複選框選擇記錄並像網格編輯一樣將它們一起編輯。還支持模式對話框。

 

現在,您可以在不離開列表頁面的情況下執行網格添加/編輯和新的帶有模式對話框的多重編輯。

 

表和視圖的圖表

不再局限於報告,現在您還可以在表/視圖的列表頁面中創建圖表。

 

 

SAML2 和 Azure AD 的登錄提供程序

  • 通過 Azure AD 支持 OAuth2
  • 支持使用 Azure AD 或 SimpleSAMLphp 進行 SAML2 單點登錄 (SSO) 和單點註銷 (SLO)

 

改進的數據導入

  • 使用數據庫事務測試導入
  • 服務器發送的導入進度事件
  • 改進了服務器事件,以便在導入之前添加自定義步驟

 

導出API和導出日誌

  • 導出API
  • 允許在服務器上保存導出的文件
  • 導出日誌表支持導出文件的檢索和搜索
  • 用於導出的 JWT 令牌的用戶權限和過期時間
  • 支持將圖像導出為 HTML
  • 支持以壓縮文件形式檢索多個導出的文件

 

帶有客戶端裁剪的文件上傳

 

 

帶文本的條形碼(自定義視圖標籤)

 

 

帶有 <optgroup> 的 SELECT 標籤

 

 

無需重新加載頁面的 Ajax 操作

  • 增強用戶體驗
  • 支持搜索、分頁、排序
  • 支持內聯和模式添加/複製/編輯/更新/刪除操作

 

無限滾動表(僅限註冊用戶擴展)

  • 列表頁面主表添加無限滾動
  • 使用 Ajax 內聯和模式操作,無需重新加載頁面

 

漂亮的開發錯誤頁面

  • 顯示源代碼、錯誤的堆棧跟踪以及請求的詳細信息
  • 僅用於開發期間的調試,不適用於生產

 

新的高級設置

  • HTML 預覽 – 允許在 UI 中禁用 HTML 預覽
  • 代理服務器地址
  • 代理服務器端口
  • 代理服務器用戶名
  • 代理服務器密碼
  • 顯示有​​錯誤的源代碼(開發)
  • 向表單添加 autocomplete=’off’ 屬性
  • 使用 Ajax 操作(列表頁面)
  • 回退用戶級別權限 – 回退導入/導出/查找/推送權限到舊列表或管理員權限
  • 啟用查找緩存的頁面 – 設置哪些頁面使用查找緩存
  • 導入最大失敗次數
  • 使用圖像裁剪器進行文件上傳
  • 導出文件夾
  • 使用固定頭表
  • 固定標題表高度(CSS 類)
  • LDAP 基本專有名稱
  • Azure 應用程序 ID
  • Azure 應用程序秘密值
  • SAML IdP 元數據 (XML)
  • SAML SP 實體 ID
  • SAML SP X.509 證書文件
  • SAML SP 私鑰文件

 

新的/改進的服務器事件和客戶端腳本

  • 表加載
  • OTP_發送
  • 日曆報告的服務器事件和客戶端腳本
  • 用戶級別權限頁面的客戶端和啟動腳本
  • 用於導入/導出的服務器事件

 

更多的

  • 支持 PHP 7.4、8.0 和 8.1
  • 替換與 PHP 8.1 不兼容的過時 Composer 軟件包
  • IS EMPTY 和 IN 搜索運算符
  • 對 MySQL 使用 FIND_IN_SET()
  • 顯示表/視圖的當前過濾器
  • 添加選項頁面中的自定義消息
  • 表名稱作為用戶權限設置頁面中的工具提示
  • .js 和 .css 文件的 URL 以及版本
  • 支持自定義驗證中的異步功能
  • 語言文件包括 Tempus Dominus、Select2、jQuery Query Builder 和 FullCalendar 的短語
  • 改進了臨時文件清理
  • Bootstrap 5.2.1、AdminLTE 3.2 和 Font Awesome 6
  • Dompdf v2.0.0(Dompdf 擴展)
  • Tempus Dominus v6.0.0(日期時間選擇器擴展)
  • UI 支持在代理服務器後面工作
  • 改進了網站上的文檔
  • 許多其他小改進

 

PHPMaker is a powerful automation tool that can generate a full set of PHP quickly from MySQL, PostgreSQL, Microsoft Access and Microsoft SQL Server databases. Using PHPMaker, you can instantly create web sites that allow users to view, edit, search, add and delete records on the web.

PHPMaker is designed for high flexibility, numerous options enable you to generate PHP applications that best suits your needs.The generated codes are clean, easy to understand and easily customizable.
The PHP scripts can be run on Windows servers (MySQL/PostgreSQL/Access/MSSQL) or Linux/Unix servers (MySQL/PostgreSQL). PHPMaker can save you tons of time and is suitable for both beginners and experienced develpers alike.
Here are some key features of “PHPMaker”:
– All scripts linked up properly
– Optional list, add/copy, view, edit, delete, multi-update and search pages for each table/view. (See Table Setup) Customizable table display order.
– Optional Grid-Add, Grid-Edit, Inline-Add, Inline-Copy, Inline-Delete, Inline-Edit right in the List page
– Optional confirmation page before insering or updating record
– Pagers in List/View page
– Fully customizable View and Edit format for each field. (See Field Setup) Customizable field display order.
– Server-side validation and/or client-side JavaScript validation
– Optional search features (Quick, Extended Quick and Advanced) with search result highlight
– Optional User ID and User Level Advanced Security to protect data from unauthorized access. (See Security Settings) Supports Dynamic User Levels and Hierarchical Parent User ID.
– Complete user registration system with optional user activation
– Optional HTML settings. charset, font, CSS, customizable themes with preview. (See HTML Settings)
– Menu Editor
– Multiple Master/Detail pages
– Various PHP options. Charset, locale, default date formats, etc . (See PHP Settings)
– Saving and restoring project from Project File
– Synchronize project settings with changes in database.
– Creates virtual directory in IIS automatically
– CSS stylesheet integration
– Field aggregation (sum, average and count)
– Custom View with built-in visual query builder
– Basic reporting
– Export to Printer-friendly/HTML/Word/Excel/CSV/XML from List/View page
– Multi-column sorting
– User selectable page size
– Table-specific List page options
– File uploading to folder and database
– Dynamic table loading
– Composite key
– Highlight and select row color
– Auto-Suggest textbox
– Auto-Fill for filling related field values on selecting a value for a lookup field
– Adding option to Selection List dynamically
– Dynamic Selection List with multiple selection support (SELECT, RADIO and CHECKBOX)
– Auto-login and Auto-Redirect
– Multi-page add/edit/view pages as tabs with page captions
– Audit Trail
– Email Notification on Add/Edit/Delete
– Optional CAPTCHA system
– File uploading to folder and database
– Dynamic table loading
– Server events and client scripts
– Code repository
– MD5 and case-sensitive password
– Fully customizable template and extensions

 

PHPMaker 2023 的新增功能

PHPMaker 2023 是之前版本的又一次巨大升級。 它加載了許多新功能,內含許多經常請求的功能。 PHPMaker 可能是同類產品中最強大、最靈活的產品,但仍然一如既往地易於使用。

重要訊息 如果您從以前的版本升級,請注意此版本中有一些重大變更,請確保您 閱讀遷移到 v2023 。

 

日曆報告

  • 使用 FullCalendar 進行日曆報告
  • 模態加入、編輯、刪除、檢視事件頁面
  • 事件的跳出視窗
  • 日曆中的上下文選單
  • 預定義的 CSS 類可輕鬆設定事件和跳出視窗的樣式


日曆報告(“dayGridMonth”檢視)


上下文選單


具有符合風格的跳出框

 

增強的控制台報告

  • Ajax 的分頁報告
  • 通過 Ajax 對報告和圖表進行排序
  • 支援匯出
  • 每個報告/圖表的卡片重整/最大化/折疊

 

雙因素身份驗證(使用第三方 API 的電子信件和短信)

除了 Google Authenticator 之外,雙因素身份驗證功能現在還支援:

  • 通過電子信件傳送到一次性密碼
  • 使用第三方 API(例如 AWSSNS)通過 SMS 進行 OTP

 

 

固定頭表(無擴展)

  • 現在內建
  • 提供預定義的 CSS 類,以便輕鬆設定表格高度

 

查詢生成器

  • 構建進階搜尋無法實現的複雜查詢
  • 容許為每個欄位選取搜尋運算符
  • 每個欄位有多個規則
  • 每組欄位之間的 AND/OR 條件
  • 多組規則
  • 組之間的 AND/OR 條件
  • 組的 NOT 條件

 

用於編輯選取記錄的多重編輯

作為多重刪除和多重更新的補充,這一新功能容許通過複選框選取記錄並像網格編輯一樣將它們一起編輯。 還支援模式對話框。

 

現在,您可以在不離開清單頁面的情況下執行網格加入/編輯和新的帶有模式對話框的多重編輯。

 

表和檢視的圖表

不再局限於報告,現在您還可以在表/檢視的清單頁面中建立圖表。

 

 

SAML2 和 Azure AD 的登入提供程式

  • 通過 Azure AD 支援 OAuth2
  • 支援使用 Azure AD 或 SimpleSAMLphp 進行 SAML2 單點登入 (SSO) 和單點註銷 (SLO)

 

改進的資料匯入

  • 使用資料庫事務測試匯入
  • 伺服器傳送到的匯入進度事件
  • 改進了伺服器事件,以便在匯入之前加入自訂步驟

 

匯出API和匯出日誌

  • 匯出API
  • 容許在伺服器上儲存匯出的檔案
  • 匯出日誌表支援匯出檔案的檢索和搜尋
  • 用於匯出的 JWT 令牌的使用者權限和過期時間
  • 支援將圖像匯出為 HTML
  • 支援以壓縮檔形式檢索多個匯出的檔案

 

帶有用戶端裁剪的檔案上傳

 

 

帶文字的條形碼(自訂檢視標籤)

 

 

帶有 <optgroup> 的 SELECT 標籤

 

 

無需重新加載頁面的 Ajax 操作

  • 增強使用者體驗
  • 支援搜尋、分頁、排序
  • 支援內聯和模式加入/複製/編輯/更新/刪除操作

 

無限卷動表(僅限註冊使用者擴展)

  • 清單頁面主表加入無限卷動
  • 使用 Ajax 內聯和模式操作,無需重新加載頁面

 

漂亮的開發錯誤頁面

  • 顯示原始碼、錯誤的堆疊追蹤以及請求的詳細訊息
  • 僅用於開發期間的除錯,不適用於生產

 

新的進階設定

  • HTML 預覽 – 容許在 UI 中禁用 HTML 預覽
  • 代理伺服器位址
  • 代理伺服器連接埠
  • 代理伺服器使用者名
  • 代理伺服器密碼
  • 顯示有錯誤的原始碼(開發)
  • 向表單加入 autocomplete=’off’ 屬性
  • 使用 Ajax 操作(清單頁面)
  • 回退使用者層級權限 – 回退匯入/匯出/搜尋/推送權限到舊清單或管理員權限
  • 啟用搜尋快取的頁面 – 設定哪些頁面使用搜尋快取
  • 匯入最大失敗次數
  • 使用圖像裁剪器進行檔案上傳
  • 匯出資料夾
  • 使用固定頭表
  • 固定標題表高度(CSS 類)
  • LDAP 基本專有名稱
  • Azure 應用程式 ID
  • Azure 應用程式秘密值
  • SAML IdP 元資料 (XML)
  • SAML SP 實體 ID
  • SAML SP X.509 證書檔案
  • SAML SP 私鑰檔案

 

新的/改進的伺服器事件和用戶端腳本

  • 表加載
  • OTP_傳送到
  • 日曆報告的伺服器事件和用戶端腳本
  • 使用者層級權限頁面的用戶端和啟動腳本
  • 用於匯入/匯出的伺服器事件

 

更多的

  • 支援 PHP 7.4、8.0 和 8.1
  • 置換與 PHP 8.1 不相容的過時 Composer 軟體包
  • IS EMPTY 和 IN 搜尋運算符
  • 對 MySQL 使用 FIND_IN_SET()
  • 顯示表/檢視的現用的過濾器
  • 加入選項頁面中的自訂訊息
  • 表名稱作為使用者權限設定頁面中的工具提示
  • .js 和 .css 檔案的 URL 以及版本
  • 支援自訂驗證中的異步功能
  • 語系檔案內含 Tempus Dominus、Select2、jQuery Query Builder 和 FullCalendar 的短語
  • 改進了暫存檔案清理
  • Bootstrap 5.2.1、AdminLTE 3.2 和 Font Awesome 6
  • Dompdf v2.0.0(Dompdf 擴展)
  • Time Lord v6.0.0(日期時間選取器擴展)
  • UI 支援在代理伺服器後面工作
  • 改進了網站上的文件
  • 許多其他小改進

    安裝 PHPMaker 2023 的系統要求:

    PHPMaker

    • Windows 2012R2/2016/2019/8.1/10/11(不支援 ARM 上的 Windows 10/11)
    • .NET Framework 4.6.2 開發人員包 (或更高版本)
    • PHP >= 7.4
    • Composer (v2.3.9 或更高版本)
    • Node.js(內含 npm) (v16 或更高版本,內含 npm v8 或更高版本)
    • WebView2 運行時

    如果您使用 SQL Server 或 Oracle,PHPMaker 需要以下資料庫驅動程式(x86 版本)才能連線到資料庫:

    • Microsoft SQL Server 2012 Native Client (適用於 Microsoft SQL Server),或 Microsoft OLE DB Driver for SQL Server (適用於 Microsoft SQL Server)
    • Oracle 用戶端 (可選,適用於 Oracle)

    伺服器

    • Linux 或 Windows 網路伺服器
    • PHP >= 7.4
    • mod_rewrite (僅適用於 Apache)
    • IIS 重寫 (僅適用於 IIS)
    • 適用於 PHP for SQL Server >= 5.8 的 Microsoft PHP 驅動程式 (需要 Microsoft SQL Server 2012 或更高版本),並且
    • Microsoft ODBC Driver for SQL Server >= 13.1 (需要 Microsoft SQL Server 2012 或更高版本)
    • Oracle 用戶端 (適用於 Oracle)

    瀏覽器

    • Chrome/Edge/Firefox/Safari/Opera(最新)
    • 不支援 Internet Explorer

     

     

PHP 中的 Web 開發是一種伺服器端腳本語系,最常被那些想要快速、輕鬆地構建簡單、動態網站的人使用。

PHP 是一種專門用於 Web 應用程式開發的開源語系。 它安全、快速、可靠,具有諸多優點。

使用 PHP 作為語系的好處:

  • PHP支援MySQL、Oracle等。
  • 它與 Apache、IIS 等伺服器相容。
  • 它運行在 Windows、Linux 等上
  • PHP 還相容開放表面軟體整合,例如 Drupal、Joomla、Ecommerce 等。

使用 PHP Web 開發服務的原因:

  • 易於使用 與其他語系相比,伺服器端腳本語系易於學習且易於理解。 如果熟悉 C 或 Perl 的語法,PHP 對他們來說會更容易、更快。 由於編碼行較少,編輯部分也可以輕鬆完成。
  • 成本高效 由於 PHP 是開源的,因此它是免費的。 由於您不需要軟體,因此可以以最低的成本開發網站。
  • 效率和支援 內建PHP,可以增強網站效能。 由於 PHP 被大量使用者使用,如果您在某個時刻陷入困境,您可以輕鬆獲得支援並解決問題。
  • 獨立且支援伺服器 PHP 支援所有主要的 Web 瀏覽器,如 MacOS、Linux、Windows,也支援主要的 Web 伺服器,如 Apache、IIS。 它還支援 Netscape 和個人 Web 伺服器。
  • 高速因素 PHP 使用自己的記憶體,因此伺服器的工作負載和加載時間會自動減少。 它還可以減少 CRM 等 Web 應用程式的開發時間。
  • 安全 這是開發網站和網路應用程式最安全的模式,也有安全層來防止病毒。
  • 經由測試和值得信賴 它是最值得信賴的,因為它已經使用了數十年,並被數百萬開發人員使用,並且其功能也經由了測試和驗證。

Digital4design 擁有經驗豐富的開發人員團隊,他們為世界各地的客戶開發定制和響應式 PHP 網站,並以有效的價格提供端到端服務。

PHP Web 開發–了解其對您業務的實時影響

PHP(超文字預處理器)是一種流行的開源腳本語系,廣泛用於 Web 開發。

以下是 PHP Web 開發對您的業務的一些實時影響:

動態網站開發:

PHP 容許建立可以提供個性化內容和交談式使用者體驗的動態網站。 使用 PHP,您可以輕鬆整合資料庫、處理表單並根據使用者輸入或其他變量生成動態網頁。 這種彈性使您能夠構建引人入勝的網站,滿足您的業務和目的受眾的特定需求。

經濟高效的解決專案:

PHP 是一種開源語系,這意味著它可以免費使用,並且擁有龐大的開發人員社區啟動為其開發和改進做出貢獻。 這使得 PHP Web 開發成為企業經濟高效的解決專案,因為它消除了昂貴的軟體許可證的需要。 此外,PHP 與各種操作系統和 Web 伺服器相容,從而降低了基礎設施成本。

快速開發:

PHP 具有簡單直觀的語法,使其相對易於學習和使用。 再加上框架、庫和資源的廣泛可用性,可以實現 Web 應用程式的快速開發。 Laravel、Symfony 和 CodeIgniter 等 PHP 框架提供了預構建的元件和工具,可以加速開發過程,從而加快您的業務的上市時間。

可擴展性和彈性:

PHP 提供出色的可擴展性,使您的網站或 Web 應用程式能夠處理不斷增長的流量和不斷增長的業務需求。 PHP可以輕鬆地與各種資料庫整合,例如MySQL、Oracle和PostgreSQL,提供資料存儲和檢索的彈性。 這種可擴展性和彈性使您的企業能夠根據需要調整和擴展其線上業務。

廣泛的社區支援:

PHP 在全球擁有一個龐大且活躍的開發人員社區。 這種社區驅動的性質可確保持續更新、錯誤修復和安全修改更新,從而使您的 PHP 應用程式保持最新且安全。 該社區還提供廣泛的文件、論壇和資源,用於故障排除和知識共享,使您可以更輕鬆地找到可能遇到的任何開發挑戰的解決專案。

與 CMS 平台的相容性

PHP 是許多流行的內容管理系統 (CMS)(例如 WordPress、Drupal 和 Joomla)的偏好語系。 這些 CMS 平台提供強大的網站建設功能,使企業能夠有效地建立和管理其線上內容。 PHP 與 CMS 平台的整合簡化了網站維護、內容更新和定制,使企業能夠擁有動態且引人入勝的線上形象。

電子商務開發

PHP 廣泛用於開發電子商務網站和應用程式。 Magento 和 WooCommerce 等流行的電子商務平台都是使用 PHP 構建的,為線上商店管理、產品編目、支付整合和訂單處理提供了廣泛的功能。 PHP 的彈性和可擴展性使其成為尋求建立可靠且安全的線上銷售平台的企業的理想選取。

效能和速度

PHP 以其卓越的效能和速度而聞名,使其成為開發高效能 Web 應用程式的理想選取。 它具有輕量級的佔用空間和高效的代碼執行能力,確保快速的頁面加載時間和最佳的使用者體驗。 另外,PHP內建了快取機制,支援多種快取技術,進一步增強效能,降低伺服器負載。

 

總之, PHP Web 開發 可以通過建立動態網站、降低開發成本、加快上市時間、提供可擴展性和彈性、受益於廣泛的社區支援、與 CMS 整合,對您的業務產生重大的實時影響平台和電子商務解決專案,並提供高效能Web 應用程式。

HP 是一種伺服器端通用腳本語系,特別適合 Web 開發。

PHP最初的意思是個人首頁。 然而,現在,它代表超文字預處理器。 它是一個遞歸縮寫,因為第一個單詞本身就是縮寫。

於 1994 年建立 PHP 由Rasmus Lerdorf 。 目前 由PHP 開發團隊維護。

從最基本的形式來看, PHP 是一種寫程式語系。 它是一種使用相當廣泛的語系,可以內嵌 HTML 中,這對於任何對 Web 開發感興趣的人來說都是一個巨大的優勢。 HTML 可能很長且包括大量指令,而 PHP 頁麵包括帶有內嵌式代碼的 HTML,使其更易於管理。

PHP 代表超文字預處理器,它本身就很令人困惑。 它實際上並不像聽起來那麼複雜——如果您對 HTML 有基本的瞭解,PHP 應該相當容易學習。 它可以讓您收集、處理和使用資料來建立輸出——基本上它可以讓您與所有頁面進行互動。

那麼為什麼選取 PHP 而不是 JavaScript 呢? 兩者之間的主要區別在於 , JavaScript 在用戶端(例如瀏覽器)上運行,而 PHP 在伺服器上運行,然後生成傳送到用戶端的 HTML。

PHP 能做什麼? 好吧,什麼都行; 然而,它主要用於三個領域:

  • 伺服器端腳本編寫——PHP 的主要領域。 如果您是在家練習的業餘愛好者,這就是方法。
  • 指令行腳本 – 非常適合使用 cron 或任務計劃程式建立的腳本。 也非常適合簡單的文字操作。
  • 編寫桌面應用程式 – PHP 可能不是用於建立桌面應用程式的最佳語系,但它為進階 Web 開發人員提供了比競爭對手更多的選取。

PHP 所需的內容通常就在您的桌面上。 它可以在所有主要操作系統(Linux、Windows 和 Mac OS X 等)上使用。 PHP 還支援許多最廣泛使用的伺服器,因此如果您決定使用它,您可以有多種選取。

毫無疑問,PHP 的最大優點是它對於新手來說很容易學習,同時它具有經驗豐富的專業人士可能需要的所有進階功能。 PHP 的功能也不限於 HTML – 您可以生成從圖像到 Flash 電影的任何內容。

綜上所述

PHP 是一種伺服器端語系

當您在網路瀏覽器中開啟網站時,例如:https://www.insertbilisim.com

Web 瀏覽器向 insertbilisim.com 所在的 Web 伺服器傳送 HTTP 請求。 Web 伺服器接收請求並以 HTML 文件進行響應。

在此示例中,Web 瀏覽器是用戶端,Web 伺服器是伺服器。 用戶端發出頁面請求,伺服器提供服務。

PHP 在 Web 伺服器上運行,處理請求並返回 HTML 文件。

PHP 是一種通用語系

就寫程式語系的用途而言,主要有兩種類型:特定領域語系和通用語系。

特定領域語系用於某些應用領域。 例如,SQL 是一種特定於領域的語系。 主要用於從關係資料庫中查詢資料。 並且SQL不能用於其他目的。

另一方面,PHP 是一種通用語系,因為您可以使用 PHP 開發各種應用程式。

PHP是一種跨平台語系

PHP 可以在所有主要操作系統上運行,內含 Linux、Windows 和 macOS。

您可以將 PHP 與所有領先的 Web 伺服器(如 Nginx、OpenBSD 和 Apache)一起使用。 一些雲環境(例如 Microsoft Azure 和 Amazon AWS)也支援 PHP。

PHP 相當靈活。 它不僅限於處理 HTML。 PHP 內建支援生成 PDF、GIF、JPEG 和 PNG 圖像。

PHP 的一個顯著特點是 MySQL 、PostgreSQL、MS SQL、db2、Oracle Database 和 MongoDB。 它支援多種資料庫

 

為什麼使用 PHP 程式語言?它主要優點有那些?

PHP 編程語言 已經存在了二十多年,並成為一種強大而可靠的解決方案,贏得了大批支持者和崇拜者。 然而,我們需要承認房間裡的 elePHPant:這種編碼語言正在逐漸失去其受歡迎程度,取而代之的是更新的和優化的對應語言。 讓我們看一下這項技術,列出 PHP 的優缺點 ,定義其使用領域,並將其與幾種競爭性開發工具進行比較。

PHP 的用途是什麼?

正如本文已經提到的,PHP 主要用於 Web 開發,並且它在這方面確實很出色。 儘管最初它用於建立動態網頁,但開發人員更喜歡使用這種腳本語系來構建 Web 應用程式 的伺服器端。 然而,PHP本來就是一種通用語系,因此如果需要的話它可能有其他的實現。 例如,可以使用 PHP 構建 桌面應用程式 。 此外,從版本 5 開始,PHP 支援 面向物件寫程式 ,提供了一套全新的功能。

這種腳本語系的多功能性源於其與其他寫程式語系結合的出色能力。 例如,開發人員可以使用 C 語系編寫 PHP 擴展,從而可以加入更多功能。 此外,PHP 擁有大量可用的庫和框架,可以進一步擴展其功能。 此類框架最流行的示例是 Laravel、Symfony、Phalcon、Zend Framework 和 Yii。

Facebook 和 WordPress 是用 PHP 編寫的最著名的兩個軟體示例。 WordPress 是網際網路上最流行的內容管理系統:在所有使用此類系統的網站中, 大約有 48% 採用 WordPress 。 得益於大量的內建和第三方外掛程式,Wordpress 幾乎適合所有角色。 您可以使用它來建立部落格、照片庫、線上商店、新聞門戶和許多其他類型的網站。

的另一個不言自明的示例 Facebook 是PHP 功能 。 這個社交網路早已演變成一個複雜的環境,具有多種功能,內含即時訊息、廣告、部落格、新聞演示、視訊播放等,但仍然基於與其他 Web 技術緊密結合的 PHP 代碼。

PHP 的優點

PHP 的流行是其眾多優點的必然結果,所有這些優點都使其成為強大而有效的開發工具。 簡短原因清單,隨後將進行更詳細的描述。 以下是PHP 成為 Web 應用程式最佳選取的

使用 PHP 的 9 個理由:

  • 許多可用的專家;
  • 大量的參考資料和教育材料;
  • 更好的網站加載速度;
  • 連線選項 更多資料庫
  • 外掛程式集合 大量開源
  • 廉價的網站託管;
  • 與 HTML 的良好協同作用;
  • 優良的彈性和組合性;
  • 雲解決專案提供的各種好處。

現在,讓我們更仔細地回顧一下 PHP 列出的優點 ,以瞭解如何在實踐中應用它們來提高 Web 應用程式的質量、功能和盈利能力。

為什麼使用 PHP? 主要優點和缺點

1. 大量可用專家可供選取

PHP 的流行催生了眾多的開發人員社區,其中一小部分可能是潛在的招聘候選人。 大量可用的專家導致高競爭力和較低的薪資要求,這有利於降低開發成本。 此外,這種語系非常容易學習和實現,因此即使是初級開發人員通常也能夠有效地實現應用程式的基本功能。

2. 豐富的文件

有很多教學、手冊和其他參考資料可供使用,這有助於開發,並可以在困難的情況下提供幫助和靈感來源。 這些材料對於新手程式員來說也是非常寶貴的,隨著難度的逐漸增加,學習過程變得更加容易。 而且,如上所述,學習 PHP 相對容易,儘管不像學習 Python 那樣容易,這進一步增加了它的受歡迎程度。

3. 提高加載速度

與許多其他 Web 開發技術相比,PHP 的使用使網站頁面加載速度更快。 例如,目前,在大多數使用場景中,PHP 的速度大約是 Python 的三倍。 反過來,較低的加載時間是一個重要的 SEO 排名因素,可以通過帶來競爭優勢來幫助進一步推廣網站。 更高的應用速度可以讓客戶滿意,並與其他優勢相結合,有助於建立和保留客戶群。

4. 廣泛的資料庫選取

PHP 容許連線到幾乎任何類型的資料庫。 最常見的選取是MySQL,主要是因為它免費、有效且深受開發人員歡迎。 與 PHP 相容的資料庫管理系統的其他可靠選項有 mSQL、MS-SQL、SQLite、PostgreSQL 等。此外,PHP 同樣可以與 ElasticSearch、Redis、MongoDB 和其他非關係資料庫一起使用。 這樣,開發人員就不再局限於使用特定的資料庫,並且可以在考慮所有關聯因素的情況下為未來的應用程式選取最佳的資料庫。

5. 廉價的開源軟體

PHP 是一種免費使用的技術,可以節省大量的開發預算。 另外,通常與PHP結合使用的開發工具大多數都是開源軟體,可以免費使用; 因此,它們還降低了項目成本。 此外,還有許多框架(例如 Laravel 和 CodeIgniter)以及各種 CMS(例如 WordPress 和 Drupal)擴展了 PHP 的功能,使開發過程變得更輕鬆、更有效。

6.更便宜的託管服務

PHP網站最常見的運行場景是LAMP堆疊。 意味著網站運行在部署在Linux系統上的Apache HTTP Web伺服器 上,並使用MySQL作為資料庫。 所有這些元件都是免費的,並且堆疊經由充分測試,這意味著開發所需的時間和資金減少。

7. 與HTML優秀的結合性

PHP 提供內嵌式 HTML 寫程式,這就是這兩種技術之間令人難以置信的協同作用的原因。 在大多數情況下, PHP 腳本 不會干擾網頁的 HTML 代碼,而是在保持在 <?php ?> 旗標定義的邊框內的同時完成網頁的 HTML 代碼。 反之亦然,如果您在 PHP 上構建了整個頁面,則可以使用腳本整合 HTML 代碼。 在這種情況下,與傳統 HTML 頁面的區別在於開始標籤的順序相反:PHP 標籤位於 HTML 標籤之前。

8、柔韌性好

彈性使得PHP能夠與許多其他寫程式語系有效地結合,從而使軟體產品能夠針對每個特定功能使用最有效的技術。 此外,PHP 是一種跨平台語系,這意味著開發人員可以使用任何主要操作系統(Windows、Linux、macOS)來執行編碼。 這種彈性使開發過程變得更快、成本更低,從而極大地促進了開發過程。

9. 與雲服務的相容性

如今,許多現代產品傾向於使用 Amazon Web Services 等雲計算解決專案來實現各種目的。 用 PHP 編寫的應用程式由不同的雲服務支援,例如 AWS Lambda。 這樣,PHP應用程式就可以部署在雲伺服器上,並達到良好的擴展性等有益效果。 更重要的是,雲計算領域並沒有被其他編碼語系所壟斷,因此 PHP 在此類實現中佔據了一席之地。

 

PHP近期和遙遠 的未來

目前,PHP 仍然處於 Web 開發世界的頂端。 所有網站中很大一部分都使用這種寫程式語系運行,並且易於使用的 CMS WordPress 繼續受到歡迎。 它容許使用者只需點選幾下即可在免費或付費託管平台上設計和部署自己的網站。 這就是為什麼 PHP 語系的不久的將來看起來是光明的,因為它將繼續發展並被廣泛使用。

然而,PHP 的遙遠前景引起了人們對其未來在 Web 開發中的可行性的擔憂。 例如,Python 已經比 PHP 吸引了更多的新開發人員,而且這種趨勢不太可能很快改變。 此外,由於存在專門的庫,Python 在處理一些高要求的功能(例如機器學習)方面比 PHP 更好。 按照這個速度,PHP 需要在其發展中實現重大飛躍才能趕上 Python,否則它的受歡迎程度將繼續下降。

結論

考慮到所有利弊,可以最終確定商業利益並回答邏輯問題“為什麼使用 PHP?”

  1. 它廣泛流行,因此您一定會找到適合您需求的開發團隊。
  2. 它相當簡單且文件齊全,因此開發過程可能會花費更少的時間。
  3. 它非常靈活,並且與其他 Web 開發技術結合得很好,因此開發團隊將擁有更多可用的工具。
  4. 它是一種開源技術,可以降低構建、部署和維護應用程式所需的成本。
  5. 它比其他 Web 開發技術(例如 Python)更快,尤其是在用於簡單應用程式時。

 

 

『將軍』你是武藝高強?膽識過人?精通騎射?您生錯時代啦!
『戰馬』你是汗血寶馬?善奔能越?躍馬中原?此戰場沒有你的舞台!
動態的架站程式時代,要自訂PHP程式頁面有那麼難嗎?
MySQL『資料庫』與『資料表』,用PHP程式有那麼難呼叫嗎?
不用死背『PHP程式』與『MySQL資料庫』語法也能設計嗎?
這是自動化軟體程式的年代(用PHPMaker設計在彈指之間完成)
這不是:神話!程式軟體模組取代了這一切複雜的工程
死背『PHP程式』與『MySQL資料庫』語法,是為學校考試用的!
因為,有些人的技術已經離這個網站的實用性非常遙遠!
————————————————————

大家都知道網路創業的好處:
1.初期建置網站金額較低,甚至零成本。
2.初期人事、水電成本較低。
3.網路店面比較沒有曝光的地區限制(除非產品、物流、語言的限制)。
4.消費者可以在任何時間瀏覽與選購商品(24小時營業)。
5.初期可採用眾多的網路平台,免費宣傳、曝光方式,之後再採用付費的方式,提高效益。
6.即使沒有成功,成本損失也較低。

想要網路創業自動賺錢,你應該具備那些專業技能呢?

那座而言不如起而行,如何開始您的第一步行動呢?

1.先評估自己會什麼網路技能?不會那些網路技能?
將自己的優勢寫下來,也將自己需要進修的專業技能逐一記錄下來

2.找到您需要的課程(利用下班時間,努力精研)
最好是影片課程,不要只是一般書店的書籍或網路電子書
(因為圖片與文字根本學習效率不好,無法有效迅速學會,學習中有問題要問誰?)
實際網路經營時發生網站語法錯誤或網站被駭客入侵!
那您最好有個專業『會程式語言與架設主機』的老師可以免費技術諮詢
不然,一發生問題,您的網路事業就停擺了,網站一停就無收入!
(就好像上班放無薪假一樣….悽慘!)。
有甚至網站資料全毀,資料庫也出問題,你要在第一時間內就能快速修護!
這一點你可要小心!網路創業絕對要有:技術諮詢!
迅速回覆的專業老師(或專業技術顧問)。
不然,就像大海裡頭的孤鳥,叫天天不應,叫地地也不靈
(自己閉門造車摸索是網路創業者最悲慘的失敗原因!)。

attachments/201208/5398530876.jpg

2.你的網站要自己架設!
(請人設計網站費用貴,小則三四萬高者也有十幾萬元的,往後網站維護也不方便!)
這方面你可以學習:
1.網站架設與網頁設計教學
詳細介紹:
http://por.tw/Website_Design/E_learning/index.php
長期技術支援網站:
http://por.tw/Website_Design

2.購物網站架站教學
詳細介紹:
http://por.tw/sale/cmmerse-4-all/index.php
長期技術支援網站:
http://por.tw/sale

3.部落格架站、行銷、賺錢術教學
詳細介紹:
http://por.tw/blog/E_learning/index.php
長期技術支援網站:
http://por.tw/blog

4.PHP+MySQL+PHPMaker+Dreamweaver整合教學
(PHPMaker運用設計網站教學)
詳細介紹:
http://por.tw/php/new-E_learning/index.php
長期技術支援網站:
http://por.tw/php

5.Flash-動畫製作教學
詳細介紹:
http://por.tw/flash/new-E_learning/index.php
長期技術支援網站:
http://por.tw/flash
————————————————————————-

3.網站圖片非常重要,你如果不會拍照與修圖,那您就要學習:
商業商品攝影教學
詳細介紹:
http://por.tw/design/photographing_Course/index.php
長期技術支援網站:
http://por.tw/design
————————————————————————-

4.影片能讓您的網站更出色,如果您不會錄影
或影片剪接、編輯、上字幕、做特效,那您就要學習:

【錄影影片製作】技術教學
詳細介紹:
http://por.tw/photo-video/video_Course/index.php
長期技術支援網站:
http://por.tw/photo-video
————————————————————————-

5.有了網站,接下來就是『如何將網站經營的有聲有色?』
這就需要專業的網路行銷技術:
A.搜尋引擎排名SEO教學
詳細介紹:
http://por.tw/seo/new-seo/index.php
長期技術支援網站:
http://por.tw/seo

B.EDM電子報製作教學
詳細介紹:
http://por.tw/edm/edm_Marketing/index.php
長期技術支援網站:
http://por.tw/edm

C.電子書製作賺錢密技教學
詳細介紹:
http://por.tw/ebook/new-ebook/index.php
長期技術支援網站:
http://por.tw/ebook

D.【訂單王】超級網路秒殺成交法-A-page 【一頁定江山】行銷賺錢術
詳細介紹:
http://por.tw/page/new-E_learning/index.php
長期技術支援網站:
http://por.tw/page
————————————————————————-

6.如果您想要學習『專案方式』的專業技能,您可以學習:
A.「網路創業賺錢_如何從網路創業賺錢賺到第一個100萬!」課程
詳細介紹:
http://por.tw/soho/new-E_learning/index.php
長期技術支援網站:
http://por.tw/soho

B.藉助『程式』邁向網路自動賺錢術(Auto Rich -自富課程)
詳細介紹:
http://por.tw/Rich/new-E_learning/index.php
長期技術支援網站:
http://por.tw/Rich

C.【正印家族】授權營運專案‧自動印鈔機賺錢術
詳細介紹:
http://por.tw/money/new-E_learning/index.php
長期技術支援網站:
http://por.tw/money
————————————————————————-

7.您的網站可以用兩種方式經營
1.是租用虛擬主機
(創業初期,如果尚無長遠規劃可租虛擬主機空間架設網站)

2.是自己擁有獨立主機!
如果您有此長遠的規劃,那您可以申購此服務:
替你架設Linux主機伺服器+影片教你維護(還有遠端技術協助)讓你自己當家作主!
http://por.tw/linux/new-E_learning/index.php
長期技術支援網站:
http://por.tw/linux
————————————————————————-

8.此外,如果你對國外軟體感覺不好用,那您可以學習:
軟體中文化實戰教學影片
軟體中文化實戰教學影片教學詳細介紹:
http://por.tw/f2blog/new-E_learning/index.php
長期技術支援網站:
http://por.tw/f2blog

不論是英文、日文、大陸簡體或其他軟體,能透過軟體中文化技術變成:繁體中文版
那在網路事業的經營上,所有要用到的軟體,就能通通變成:繁體中文版啦!
那是業經營起來當然是:得心應手!手到擒來!

Composer 是 PHP 中的依賴管理工具。 它容許您聲明您的項目所依賴的庫,並且它將為您管理(安裝/更新)它們。

如果您之前沒有使用過 Composer,請先閱讀 簡介 。 PHPMaker 使用 Composer 來管理所需的第三方包。 確保在安裝 PHPMaker 時安裝 Composer(如果尚未安裝)。

Composer 由 php.exe 運行,因此您需要在 PC 上安裝 PHP。 您的PC上的PHP版本應與您的開發/生產伺服器上的PHP版本相同。

還需要一些敏感的 PHP 設定和編譯標誌,在使用 Composer 安裝程式時,您將收到有關任何不相容性的警示。

建議您將 PHP 升級到最新穩定版本(即日起 v8.1.x), 下載 適合您的 PC(x86 或 x64)的版本。 如果您不確定是非執行緒安全版本還是執行緒安全版本,您可以先嘗試非執行緒安全版本。 下載 Zip 版本,其中內含該版本的符合擴展。

如果您還沒有 php.ini,請複製 php.ini-development 並將其更名為 php.ini。 使用文字編輯器開啟 php.ini,確保至少啟用以下內容:

; On windows
extension_dir="ext"
extension=curl
extension=openssl
extension=mbstring
extension=fileinfo
extension=intl
; Note: For PHP 8, the GD extension is named as "gd" only, not "gd2".
extension=gd2
; You also need to enable other extensions that your project requires, including those for your database(s), e.g.
; For MySQL
extension=pdo_mysql
; or
extension=mysqli
; For SQLite
extension=pdo_sqlite
; For PostgreSQL
extension=pdo_pgsql
; For Oracle
extension=oci8_12c
; For SQL Server
; Note: This example assumes PHP 8.0 TS 64 bit, you must change to your own according to:
; https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-ver15
extension=php_sqlsrv_80_ts
 
 當PHPMaker啟動時,它會檢查Composer是否準備好,如果沒有,它會要求您安裝。 不要略過,直接安裝。
安裝程式(PHPMaker 附帶的 Composer-Setup.exe)將為您下載 Composer 並設定 PATH 環境變量,以便您在安裝後可以從任何目錄呼叫 Composer。
在安裝過程中,安裝程式將嘗試搜尋您的 php.exe。 如果安裝程式無法自動找到您安裝的 php.exe,您只需在詢問時指定即可。

安裝後,開啟指令提示符並輸入以下指令來測試 Composer:

composer -V
 
如果 Composer 安裝正確,您應該會看到版本號,例如 Composer version 2.3.10 2022-07-13 15:48:23 。 確保您已安裝 v2.3.9 或更高版本。
注意 關閉現用的的指令提示符。 使用新的指令提示符測試使用情況。 這很重要,因為只有在新的指令提示符啟動時才會加載 PATH。

PHPMaker 將在腳本生成後自動呼叫 Composer update 來為您的項目安裝/更新庫。 FIRST生成後,Composer需要下載所有需要的包,可能需要較長的時間,請耐心等待。 除非您啟用/禁用某些需要第三方軟體包的功能,否則後續版本將不會再次運行“composer update”。

筆記

  1. Composer 從網際網路下載軟體包,請確保運行“composer update”時處於線上狀態。
  2. 如果您在 HTTP 代理後面使用 Composer,則可以使用標準 http_proxy HTTP_PROXY 環境變量,請參閱 http_proxy 或 HTTP_PROXY 。
  3. Composer下載的包放在您項目的項目資料夾下的“vendor”子資料夾中。 確保將此“提供者”子資料夾與其他生成的檔案一起上傳到您的網站。

使用 PHPMaker 2023(對於:URL Rewrite 網址重寫 )是怎麼一回事?

URL Rewrite (網址重寫)

生成的Web應用程式需要 URL重寫 ,您需要配置Web伺服器以將HTTP請求傳送到到PHP前端控制器檔案,即 index.php

預設情況下, .htaccess 檔案(對於 Apache)和 web.config 將為您的 Web 伺服器生成 檔案(對於 IIS)。

您可能不需要手動配置。 但是,如果生成的檔案不適用於您的 Web 伺服器,您應該檢查以下內容。

 

 Apache 阿帕奇

確保已安裝並啟用 Apache mod_rewrite 模組。 確保您的 .htaccess index.php 檔案位於同一目錄中。 .htaccess 檔案應包括以下重寫規則:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
 Apache 阿帕奇配置
注意 有兩組 .htaccess 檔案和 index.php,一組位於項目資料夾下,另一組位於“api”子資料夾下。

某些 Apache 伺服器需要 RewriteBase 指令,您可能需要加入:

A。 如果您生成到站台的 root 資料夾,

# For the .htaccess under the project folder
RewriteBase /
# For the .htaccess under the "api" folder
RewriteBase /api/
Apache 阿帕奇配置

b. 如果您生成到站台的子資料夾(例如“demo2023”),

# For the .htaccess under the project folder
RewriteBase /demo2023/
# For the .htaccess under the "api" folder
RewriteBase /demo2023/api/
Apache 阿帕奇配置

如果您的伺服器需要此設定,您可以點選 “工具”->“進階設定” 並設定 RewriteBase 指令 ,例如 / /demo2023/ ,然後重新生成 .htaccess 檔案。

確保您的虛擬主機配置了 AllowOverride 指令,以便 .htaccess 可以使用 重寫規則。 在文字編輯器中開啟 httpd.conf apache.conf ,找到 <Directory> 部分並將 AllowOverride 行變更為 ALL

如果啟用了 Apache 模組 mod_authz_core ,請確保正確配置 Require 指令,例如 Require all grants 授予對所有請求的訪問權限。

# DocumentRoot: The directory out of which you will serve your documents.
DocumentRoot "D:/my/path"
<Directory "D:/my/path">
    # ...
    # AllowOverride controls what directives may be placed in .htaccess files.
    AllowOverride All
    # Controls who can get stuff from this server.
    Require all granted
</Directory>
Apache 阿帕奇配置

 

nginx

的 Nginx 虛擬主機配置示例 這是域example.com 。 它偵聽連接埠 80 上的入站 HTTP 連線。

注意 以下假設 PHP-FPM 伺服器在連接埠 9123 上運行。 您必須更新 server_name error_log access_log 、 和 具有您自己的值的 指令。 root 指令 是應用程式公共文件根目錄的路徑, index.php 前端控制器檔案應位於此目錄中
server {
    listen 80;
    server_name example.com;
    index index.php;
    error_log /path/to/example.error.log;
    access_log /path/to/example.access.log;
    root /path/to/public;
    location / {
        try_files $uri /index.php$is_args$args;
    }
    location /api/ {
        try_files $uri /api/index.php$is_args$args;
    }
    location ~ \.php {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9123;
    }
}
nginx

 

網際網路訊息服務 (IIS)

不是 URL Rewrite模組 內建的,所以你需要下載並安裝 IIS URL 重寫模組 來自Microsoft 網站的 。 安裝後,您應該在 IIS 管理器中看到 URL 重寫模組: 您網站的

要執行映射,您可以使用 IIS 管理器,但直接使用 web.config 檔案更簡單。

確保 web.config index.php 檔案位於同一目錄(項目資料夾)中。 web.config 檔案應包括以下代碼:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="api" patternSyntax="Wildcard">
          <match url="api/*" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="api/index.php" />
        </rule>
        <rule name="slim" patternSyntax="Wildcard">
          <match url="*" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="index.php" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
XML

要了解有關 IIS URL 重寫的更多訊息,請參閱 使用 URL 重寫模組

PHPMaker 支援 REST API,使您能夠執行 CRUD (建立、讀取、更新和刪除)生成的 Web 應用程式中的表。 您可以向 API 發出請求(例如通過 JavaScript 代碼),取得 JSON(JavaScript 物件表示法)形式的響應, 按照您的喜好解釋並呈現結果。 API請求的預設路徑是生成的應用程式下的“api”(即<mysite>/api)。

注意 在本文中,我們假設 API 位於 <mysite>/api ,因此 API 的 URL 為 /api/ ,如果您將 API 變更為其他資料夾,則需要相應變更以下示例中的 URL。

 

API 操作

REST API 是在每個選取生成的表支援的清單、檢視、加入、編輯和刪除頁面的基礎上實現的。 支援的基本 API 操作有 加入 (建立)、 清單 / 檢視 (讀取)、 編輯 (更新)、 刪除 (刪除)、 登入 (驗證使用者,如果啟用了安全性)和 檔案 (取得檔案內容)。

從 PHPMaker 2023 開始, 匯出 還支援 API 操作。 您可以將表或報告匯出到檔案,並在以後使用 匯出 API 進行檢索。

以下示例顯示了與 API 的標準訊息交換 (使用demo資料庫的“cars”表進行演示):

 

示例 1 – 通過鍵取得記錄(檢視操作)

$("#input-id").change(function() { // Assume "input-id" is an input for key value
    let object = "<Table>", // Replace <Table> by actual table name
        key = encodeURIComponent($(this).val());
    $.get("/api/view/" + object + "/" + key, function (res) { // Get response from View page API
        if (res && res.success) {
            let row = res[object];
            alert(JSON.stringify(row)); // Show output JSON
        } else {
            alert(res.failureMessage);
        }
    });
});
JavaScript

HTTP請求
取得 /api/view/cars/1
接受:應用程式/json

HTTP響應
200 好

{
    "success": true,
    "version": "19.0.0",
    "cars": {
        "ID": 1,
        "Trademark": 1,
        ...
    }
}
JSON

 

示例 2 – 建立記錄(加入操作)

$("#btn-id").click(function() {//  Assume "btn-id" is the submit button for the add form
    let object = "<Table>", // Replace <Table> by actual table name
        data = $(this.form).serialize();
    $.post("/api/add/" + object, data, function (res) { // Get response from Add page API
        if (res && res.success) {
            let row = res[object];
            alert(JSON.stringify(row)); // Show output JSON
        } else {
            alert(res.failureMessage);
        }
    });
});
JavaScript

HTTP請求
POST /api/ 加入/汽車
商標=1&…
接受:應用程式/json

如果您的資料是 JSON,則 HTTP 請求應為:

POST /api/ 加入/汽車
{“商標”:1,…}
內容類型:application/json
接受:應用程式/json

注意 如果您的資料是 JSON,請確保已將內容類型設定為 application/json 並確保使用 完整的 JSON 語法 可以正確解析它 ,以便json_decode

HTTP 響應(成功)
200 好

{
    "success": true,
    "version": "19.0.0",
    "cars": {
        "ID": 16,
        "Trademark": 1,
        ...
    }
}
JSON

HTTP 響應(失敗)
200 好

{
    "success": false,
    "version": "19.0.0",
    "failureMessage": "<reason>"
}
JSON

 

示例 3 – 匯出和檢索匯出的檔案(匯出操作)

1.匯出檔案並取得檔案ID

let object = "<Table>", // Replace <Table> by actual table name
    exportType = "<ExportType>"; // Replace <ExportType> by actual export type (e.g. excel/word/pdf)
  // Get response from Export API (Replace <FileName> by expected file name, if any)
$.get("/api/export/" + exportType + "/" + object + "?filename=<FileName>&save=1", function (res) {
    if (res && res.success) {
        alert(res.fileId); // Get exported file ID
    } else {
        alert(res.failureMessage);
    }
});
JavaScript

HTTP請求
GET /api/export/excel/cars?filename=…&save=1&output=0
接受:應用程式/json

HTTP響應
200 好

{
  "success": true,
  "version": "19.0.0",
  "fileid": "575879b9-9c87-45de-9403-8c7e753981e5"
}
JSON

2.通過檔案ID檢索匯出的檔案內容

let fileId = "<FileId>"; // File Id from previous export action response
$.get("/api/export/" + fileId, function (res) { // Get file content from Export API
      // Output file content
});
JavaScript

HTTP請求
取得 /api/export/575879b9-9c87-45de-9403-8c7e753981e5

HTTP響應
200 好

返回匯出的檔案內容。

 

支援的 API 操作

備註 如果您啟用 “使用 Swagger UI for API” (請參閱​​“工具”-> “進階設定” ),則可以使用 Swagger UI 位於 http://mysite/basepath/swagger/ 的 測試這些操作。

POST /api/登入 取得 /api/登入

POST /api/登入 如果使用者從外部使用者端(不在生成的 Web 應用程式內)使用 REST API,則使用者需要首先登入。 登入 API 通過 JWT 令牌對使用者進行身份驗證, 使用 JWT 對使用者進行身份驗證。 有關詳細訊息,請參閱下面

/api/登入
使用者名=admin&密碼=master

參數

使用者名 (表單資料)
使用者名。 必需的。
密碼 (表單資料)
密碼。 必需的。
安全碼 (表單資料)
谷歌身份驗證器安全代碼。 如果 兩因素身份驗證,則為必需。 啟用了
過期 (表單資料)

JWT 令牌的過期時間(小時)。 選修的。

登入後API過期時間的預設值 (秒) 。 如果不指定,則使用

權限 (表單資料)

結合使用 與expire 。 選修的。如果指定,則 JWT 僅對指定權限有效。 請參閱下表,其中列出了權限類型和值。

請注意, 該權限只能是登入使用者權限的子集。

取得 /api/登入

如果 啟用了進階設定 “容許通過 URL 登入” ,則接受,例如

/api/login?使用者名=admin&密碼=master

參數

使用者名 (查詢)
使用者名。 必需的。
密碼 (查詢)
密碼。 必需的。
安全碼 (查詢)
谷歌身份驗證器安全代碼。 如果 兩因素身份驗證,則為必需。 啟用了
過期 (查詢)

JWT 令牌的過期時間(小時)。 選修的。

登入後API過期時間的預設值 (秒) 。 如果不指定,則使用

權限 (查詢)

結合使用 與expire 。 選修的。如果指定,則 JWT 僅對指定權限有效。 請參閱下表,其中列出了權限類型和值。

請注意, 該權限只能是登入使用者權限的子集。

權限類型和值 下面列出了權限類型和值的清單。 要指定權限類型的組合,請將值相加。 例如,對於“清單 + 匯出”,請使用 8 + 1024(即 1032)

類型
價值
加入
1
刪除
2
編輯
4
清單
8
行政
16
看法
32
搜尋
64
匯入
128
抬頭
256
512
匯出
1024

成功回復

{
"JWT": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9......"
}
JSON
說明 在Swagger UI中測試時,登入後需要點擊 授權 按鈕並輸入“Bearer <JsonWebToken>”對自己進行授權,然後才能測試其他操作。

響應失敗
401 未經授權

取得 /api/list/{表}

取得記錄清單,例如

/api/清單/汽車

參數

(路徑)
表名。 必需的。
開始 (查詢)
起始記錄號。 可選,預設 = 1。
記錄頁面 (查詢)
每頁記錄。 可選,預設 = 每頁記錄數 設定,需要啟動 可選頁面大小 設定。
訂單 (查詢)
欄位名稱。 可選,按指定欄位排序,需要啟動 清一頁面中的排序 設定。
訂單類型 (查詢)
按升冪 (‘ASC’) 或降冪 (‘DESC’) 排序。 可選,需要啟動 清一頁面中的排序 設定。
<欄位名稱> (查詢)
按值搜尋指定欄位。 可選,需要啟動 進階/擴展搜尋設定。 清一頁面中的

成功回復

{
  "success": true,
  "version": "19.0.0",
  "cars": [
      {
          "ID": 1,
            "Trademark": 1,
            ...
      },
      {
          "ID": 2,
            "Trademark": 1,
            ...
      }
  ]
}
JSON

響應失敗

{
  "success": false,
  "version": "19.0.0",
  "failureMessage": "<reason>"
}
JSON
GET /api/export/{類型}/{表}
取得 /api/export/{id}
GET /api/匯出/搜尋

GET /api/export/{類型}/{表} 從表中匯出記錄,例如

/api/export/excel/汽車

參數

類型 (路徑)
匯出類型,例如“excel”、“word”、“pdf”、“html”。 必需的。
(路徑)
表名。 必需的。
(查詢)
記錄的主鍵。 可選,用於檢索單個記錄(從“檢視”頁面)。
頁面 (查詢)
頁碼。 選修的。
記錄頁面 (查詢)
每頁記錄數。 選修的。
檔名 (查詢)
匯出檔案的檔名。 可選,僅用於覆蓋預設檔名。
儲存 (查詢)
將匯出的檔案儲存在伺服器上。 值:0 或 1。可選,預設為 0。
輸出 (查詢)
將匯出的檔案輸出到伺服器上。 值:0或1。可選,預設為1,即直接輸出檔案。

成功回復
匯出時輸出=0:

{
  "success": true,
  "version": "19.0.0",
  "fileId": "575879b9-9c87-45de-9403-8c7e753981e5"
}
JSON

不帶“儲存”參數匯出,或輸出=1:
<匯出的檔案內容>

響應失敗
檢視失敗響應清單

取得 /api/export/{id}

從id取得匯出的檔案,例如

/api/export/575879b9-9c87-45de-9403-8c7e753981e5

參數

id (路徑)
匯出檔案的檔案 ID。 必需的。
檔名 (查詢)
匯出檔案的檔名。 可選,僅用於覆蓋預設檔名。

成功回復

<匯出的檔案內容>

響應失敗
檢視失敗響應清單

GET /api/匯出/搜尋

搜尋匯出的檔案,例如

/api/export/search/?limit=1

參數

限制 (查詢)
最新匯出檔案數(整數)
類型 (查詢)
匯出類型,例如“excel”、“word”、“pdf”、“html”
表名 (查詢)
表名
檔名 (查詢)
檔名
日期時間 (查詢)
約會時間
輸出 (查詢)
將匯出的檔案輸出到伺服器上。 值:0或1。可選,預設為1,即直接輸出檔案。

成功回復
搜尋輸出=0:

{
  "success": true,
  "version": "19.0.0",
  "fileId": [ "575879b9-9c87-45de-9403-8c7e753981e5" ]
}
JSON

不使用“output”參數或output=1 進行搜尋:
<匯出的檔案內容>

注意: 如果搜尋後有多個檔案,則輸出將為匯出檔案的壓縮檔。

響應失敗
檢視失敗響應清單

GET /api/view/{表}/{鍵}

通過key取得單條記錄,例如

/api/檢視/汽車/1

參數

(路徑)
表名。 必需的。
(路徑)
記錄的主鍵。 必需的。

成功回復

{
"success": true,
"version": "19.0.0",
"cars": {
    "ID": 1,
        "Trademark": 1,
        ...
    }
}
JSON
響應失敗
檢視失敗響應清單
POST /api/add/{表}

插入一條新記錄,例如

/api/加入/汽車
商標=1&…

參數

(路徑)
表名。 必需的。
<欄位名稱> (表單資料)
要插入的欄位值。 必需的。

成功回復

{
  "success": true,
  "version": "19.0.0",
  "cars": {
      "ID": 16,
      "Trademark": 1,
      ...
  }
}
JSON
響應失敗
檢視失敗響應清單
POST /api/註冊

在使用者表中註冊一個新使用者,例如

/api/註冊
使用者名=新使用者&…

參數

<欄位名稱> (表單資料)
要插入的欄位值。 必需的。

成功回復

{
  "success": true,
  "version": "19.0.0",
  "employees": {
      "EmployeeID": 10,
      "Username": "newuser",
      ...
  }
}
JSON
響應失敗
檢視失敗響應清單
POST /api/edit/{表}/{鍵}

通過鍵更新現有記錄,例如。

/api/編輯/汽車/1
商標=2&…

參數

(路徑)
表名。 必需的。
(路徑)
記錄的主鍵。 必需的。
<欄位名稱> (表單資料)
要更新的欄位值。 必需的。

成功回復

{
  "success": true,
  "version": "19.0.0",
  "cars": {
      "Trademark": 2,
      ...
  }
}
JSON
Failed response
See failed response for list

GET /api/delete/{table}/{key} POST /api/delete/{table}

GET /api/delete/{table}/{key} Delete an existing record by key, e.g.

/api/delete/cars/1

Parameters

table (path)
Table name. Required.
key (path)
Primary key of the record to be deleted. Required.

POST /api/delete/{table}

Delete multiple records by keys, e.g.

/api/delete/cars
key_m[]=1&key_m[]=2&…

Parameters

table (path)
Table name. Required.
key_m[] (表單資料)
要刪除的記錄的主鍵。 必需的。
注意 如果是複合鍵,則 <FieldValue> 是逗號分隔值。

成功回復

{
  "success": true,
  "version": "19.0.0",
  "cars": {
      "ID": 1,
      "Trademark": 1,
      ...
  }
}
JSON
響應失敗
檢視失敗響應清單

GET /api/file/{表}/{字段}/{鍵} GET /api/檔案/{表}/{路徑}

GET /api/file/{表}/{字段}/{鍵} 按主要模式取得檔案訊息,例如

/api/檔案/員工/照片/1

參數

(路徑)
表名。 必需的。
欄位 (路徑)
欄位名稱。 必需的。
(路徑)
記錄的主鍵。 必需的。

GET /api/檔案/{表}/{路徑}

通過加密檔案路逕取得檔案資料,例如

/api/檔案/員工/xxx

參數

(路徑)
表名。 必需的。
路徑 (路徑)
加密的檔案路徑。 必需的。
注意 如果是複合鍵,則在 Swagger UI 中測試時,輸入 {key} 作為逗號分隔值。

成功回復
對於 blob 欄位(例如 cars 表中的圖片欄位),具有正確內容類型的檔案欄位的二進位內容。
對於字串欄位(例如員工表中的照片欄位),檔案位置的 JSON 響應:

{
  "Photo": {
      "EmpID1.jpg": "http://<my_site>/upload/EmpID1.jpg"
  },
  "version": "19.0.0"
}
JSON

如果檔案路徑被加密:

{
  "Photo": {
      "EmpID1.jpg": "http://<my_site>/api/file/employees/<encrypted_file_path>"
  },
  "version": "19.0.0"
}
JSON
then you can use the second file action to get the file content.Failed response
Empty response
POST /api/upload

上傳檔案,例如

/api/upload

請參閱下面的示例。

參數

正文 (表單資料)
表格資料。 必需的。

成功回復
檔案令牌和檔案訊息的 JSON 響應:

{
  "success": true,
  "version": "19.0.0",
  "token": "<FileToken>",
  "files": [
      ...file info...
  ]
}
JSON

響應失敗

{
  "success": false,
  "version": "19.0.0",
  "files": []
}
JSON

GET /api/permissions/{userLevelID} POST /api/permissions/{userLevelID}

GET /api/permissions/{userLevelID} 取得權限,例如

/api/權限/1

參數

使用者層級ID (路徑)
使用者層級 ID。 必需的。

POST /api/permissions/{userLevelID}

更新權限,例如

/api/權限/1
{“汽車”:264,…}

參數

使用者層級ID (路徑)
使用者層級 ID。 必需的。
身體 (身體)
JSON 格式的權限,例如 { “<Table1>”: <Permission1>, “<Table2>”: <Permission2>, … } 。 必需的。 請參閱上面登入 API 中的權限類型和值清單。

Successful response
Get permissions:

{
  "userlevel": 1,
  "permissions": {
      "cars": 8,
      ...
  }
}
JSON

Update permission:

{
  "success": true,
  "userlevel": 1,
  "permissions": {
      "cars": 264,
      ...
  }
}
JSON

響應失敗

{
  "success": false,
  "userlevel": 1
}
JSON

 

使用 JWT(JSON Web 令牌)對使用者進行身份驗證

REST API 是無狀態的。 每個API請求相互獨立,伺服器中不存儲任何會話資料 記錄 API 請求的現用的狀態。 要從 API 訪問受保護的資源, 操作取得 JSON Web 令牌 (JWT) 來對使用者進行身份驗證 您需要首先使用登入 , 然後在後續 API 請求中將 JWT 作為身份驗證標頭傳遞。

筆記

  1. 如果您在訪問受保護資源時不提供 JWT,您將收到 401 Unauthorized 響應。
  2. 每個 JWT 都有一個有限的時間跨度,因此您可以 令牌過期後需要重新對使用者進行身份驗證。

要了解有關 JWT 的更多訊息,請訪問 https://jwt.io/introduction/

以下 JavaScript 展示瞭如何通過 JWT 從 API 取得受保護的資源。 首先對使用者進行身份驗證 點選 登入 按鈕。 然後點擊 取得訂單記錄 按鈕即可取得訂單記錄 這是受保護的資源。

$(function() {
    let store = store || {};
    // Store JWT
    store.setJWT = function (data) {
        this.JWT = data;
    }
    // Login
    $("#frm-login").submit(function (e) {
        e.preventDefault();
        let data = $("#frm-login").serialize();
        $.post("/api/login", data, function (data) {
            $("button").removeAttr("disabled");
            store.setJWT(data.JWT);
        }).fail(function (xhr, status, error) {
            alert("login failed. status: " + status + ", error: " + error);
        });
    });
    // Get protected resource
    let getProtectedResource = function (e) {
        e.preventDefault();
        $.ajax({
            url: "/api/view/orders/10248",
            type: "GET",
            success: function (data, status, xhr) {
                let out = (data && typeof data === 'object') ? JSON.stringify(data) : data;
                alert(out);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert("status: " + xhr.status + ", error: " + thrownError);
            },
            beforeSend: function (request) { // Set JWT header
                request.setRequestHeader('X-Authorization', 'Bearer ' + store.JWT);
            }
        });
    }
    $("#btn-with-token").click(getProtectedResource);
});
JavaScript
<form id="frm-login" method="post">
    <input type="text" name="username" value="admin">
    <input type="text" name="password" value="master">
    <input type="submit" value="Login">
</form>
<button id="btn-with-token" type="button" disabled>Get order record</button>
超文字標示語系

 

 

上傳檔案

要上傳檔案,您可以使用 上傳 操作(見上文)。 您可以通過 HTML 5 上傳檔案,例如

<input type="file" id="id" name="name" onchange="uploadFiles(this);">
超文字標示語系

如果你想讓使用者選取多個檔案,只需 使用multiple 在 input 元素上 加入[]即可: 屬性並在名稱中

<input type="file" id="id" name="name[]" multiple onchange="uploadFiles(this);">
超文字標示語系
// Upload files
function uploadFiles(el) {
    let files = el.files, // Get FileList object
        name = el.name,
        url = "/api/upload",
        xhr = new XMLHttpRequest(),
        fd = new FormData();
    xhr.responseType = "json";
    xhr.open("POST", url, true);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200 && xhr.response) { // Files uploaded
            if (xhr.response.filetoken) // Check file token
                console.log(xhr.response.filetoken);
        }
    };
    Array.from(files).forEach(file => fd.append(name, file)); // Append File object to form data
    xhr.send(fd);
}
JavaScript

筆記

  1. 當使用者選取檔案時, files 輸入元素的 屬性是一個FileList 物件,其中內含 File物件。 表示使用者選取的檔案的
  2. 如果檔案上傳成功,您將獲得帶有檔案令牌的成功響應(見上文),然後您可以使用檔案令牌作為欄位的欄位值來進行加入 編輯 操作
  3. 不支援將多個檔案上傳到 BLOB 欄位。

 

 

建立您自己的 API 操作

除了內建 API 操作之外,您還可以通過 Api_Action 伺服器事件加入自己的 API 操作(請參閱 伺服器事件和使用者端腳本 )。

示例 1 – 你好世界

function Api_Action($app)
{
    $app->get('/hello/{name}', function ($request, $response, $args) {
        $name = $args["name"] ?? null; // Get the input value
        if ($name !== null) {
            $response = $response->write("Hello, " . $name); // Write to response
        }
        return $response; // Return Psr\Http\Message\ResponseInterface object
    });
}
PHP

使用者現在可以訪問 URL /api/hello/John 來取得響應文字 “你好約翰”。

筆記

  1. 返回 Psr\Http\Message\ResponseInterface物件。 確保在路由回呼中
  2. 參數的詳細訊息,請參閱 請求 響應 有關 回呼函數的$request $response 物件。

 

示例 2 – 按名稱取得產品

function Api_Action($app)
{
    $app->get('/getProductByName/{name}', function ($request, $response, $args) {
        $name = $args["name"] ?? null; // Get the input value
        if ($name !== null) {
            $response = $response->withJson(ExecuteRow("SELECT * FROM products WHERE ProductName = '" . AdjustSql($name) . "'")); // Select the record by name and return as JSON
        }
        return $response; // Return Psr\Http\Message\ResponseInterface object
    });
}
PHP

現在可以使用以下 JavaScript 訪問產品資料:

$.get("/api/getProductByName/Chai", function (res) {
    console.log(res); // Show the result in console
});
JavaScript
注意 參閱 返回 JSON 有關從回呼函數返回 JSON 資料的更多詳細訊息,請 。

 

進階設定

中自訂 REST API 的以下設定 您可以在進階設定

API JWT 簽名密鑰
用於簽署 JSON Web 令牌 (JWT) 的密鑰。 非可選,請確保使用不同的值 不同的項目並將其儲存在秘密的地方
API JWT 簽名算法
用於簽署 JWT 的算法。 預設為 HS512 。 有關更多可能的值,請參閱 JWT 網站: https://jwt.io/introduction
API JWT 授權標頭
存儲 JWT 的標頭名稱。 預設值為 X 授權
登入後API訪問時間(秒)
登入後可以訪問受保護資源的時間。 預設值為 0 。 如果你想延遲訪問,可以將其變更為10。
登入後API過期時間(秒)
JWT 過期時間。 預設值為 3600(60 分鐘)。 一旦 JWT 過期,使用者將需要再次進行身份驗證。
API 自訂標頭

如果啟用,則 IIS/Apache 將發出 Access-Control-Allow-Origin、Access-Control-Allow-Headers 和 Access-Control-Allow-Methods。 預設為 false。

筆記

  1. 對於 Apache, 必須啟用mod_headers 才能使此設定起作用。
  2. 如果禁用,標頭將由 CORS 中間件發出。
API 訪問控制容許來源
Access-Control-Allow-Origin 標頭。 如果未指定,預設值為“*”,以便外部應用程式可以訪問 REST API。
API 訪問控制容許標頭

Access-Control-Allow-Headers 標頭。

注意 CORS 安全清單請求標頭 始終是容許的,因此通常不會在 Access-Control-Allow-Headers 中列出(除非需要規避安全清單 附加限制 )。

 

匯出 Export API 容許您從表/檢視/報告匯出快照,並將它們儲存為伺服器上的物理檔案,以便以後檢索。

要使用匯出 Export API,您必須首先設定匯出日誌表以追蹤匯出的檔案。

 

匯出日誌表

要設定匯出日誌表,請轉至 PHP 設定 -> 頁面選項(全局) -> 匯出 部分,點選 建立表 旁邊的 匯出日誌表 按鈕。

對話框 “建立匯出日誌表” 將出現 ,點選“確定” 以建立匯出日誌表。

如果您已經有自己的表來存儲匯出日誌資料,則可以 選取您的匯出日誌表 在下拉清單中 ,然後點選[…] 按鈕設定以下欄位的欄位名稱。

檔案 ID (GUID) 匯出檔案的檔案 ID。 主鍵欄位必須是唯一的。
日期時間 (日期時間) 檔案匯出的日期及時間
使用者 (VarChar) 請求匯出的使用者
匯出類型 (VarChar) 匯出型。 可能的值:“excel”、“word”、“pdf”、“html”、“csv”、“xml”和“json”(無引號)
(VarChar) 匯出表/報告名稱
鍵值 (VarChar) 匯出記錄的鍵值(可選)。 如果指定,則僅匯出特定記錄。 否則,表格/報告將相應地匯出為匯出類型(即“所有頁面”或“現用的頁面”)。
檔名 (VarChar) 匯出檔名
請求 (文字) 匯出請求 URL

所有匯出 API 操作都將記錄在匯出日誌表中。 對於指定了“檔名”和“儲存”參數的匯出 API 請求,匯出的檔案將被儲存,您可以稍後使用匯出 API 檢索該檔案。

要測試匯出 API,您可以啟用 進階設定 -> 使用 Swagger UI 中生成的 swagger UI 並使用http://mysite/basepath/swagger/

 

支援的匯出 API 操作

注意 Export API 是 REST API 的一部分,如果使用者從外部用戶端(不在生成的 Web 應用程式內)使用 Export API,則使用者需要首先通過 REST API 登入。 有關詳細訊息,請參閱 使用 JWT 對使用者進行身份驗證

匯出 API 支援以下操作:

1. 匯出

將頁面匯出為特殊的檔案類型。

GET /api/export/{類型}/{表}

參數

類型 (字串) 匯出類型(excel/word/pdf/html/csv/xml/json)
(字串) 表/報告名稱
(字串) 錄音鍵(可選)
(整數) 頁碼(可選)
記錄頁 (完整) 每頁記錄(可選)
檔名 (字串) 匯出檔名(可選)
儲存 (整數) 是否在伺服器上儲存檔案(1 = true,0 = false)如果為 true,則匯出的檔案將儲存在伺服器的匯出資料夾中。 如果為 false,則直接輸出檔案。
輸出 (整數) 是否輸出檔案(1 = true, 0 = false)您可以選取儲存檔案但不輸出檔案(即 save=1&output=0 )。 在這種情況下,只會返回一個檔案 ID 供以後使用。 請注意,如果 save 設定為 false, 則輸出 始終為 true。

例如,要將資料從“orders”表匯出到 Excel,您可以運行此匯出 API 請求:

如果啟用save=1,則運行請求後,匯出的檔案將儲存在伺服器上。 如果output=1(或未指定),則直接輸出檔案。 如果output=0,您將從API響應中取得檔案ID,稍後可以使用該ID下載匯出的檔案。

 

2.通過ID取得

通過檔案 ID 取得先前匯出(和儲存)的檔案(例如,從“搜尋”操作,見下文)。

取得 /api/export/{id}

參數

id (字串) 匯出檔案id以檢索匯出的檔案
檔名 (字串) 覆蓋匯出的檔名(可選)。 如果未指定,將使用原始匯出的檔名。

例如,要檢索具有已知檔案 ID 的檔案:

 

3. 搜尋並下載

搜尋匯出日誌並下載檔案(或取得檔案 ID 清單)。

GET /api/匯出/搜尋

參數

限制 (整數) 最新匯出的檔案(例如limit=10表示最新匯出的10個檔案)
類型 (字串) 匯出類型(excel/word/pdf/html/csv/xml/json)
表名 (字串) 表/報告名稱
檔名 (字串) 匯出檔名
日期時間 (字串) 約會時間
輸出 (整數) 是否輸出檔案(1 = true, 0 = false)您可以選取輸出檔案或僅取得檔案 ID。 如果未指定,則預設為 true。

例如,要搜尋最後匯出的檔案,請指定 limit=1:

筆記:

  • 如果搜尋後有多個檔案,則輸出將為匯出檔案的壓縮檔。
  • Zip 需要 PHP Zip 擴展 。 如果未啟用擴展,則將輸出檔案 ID,而不是壓縮檔。

重要筆記

  1. 對於表/檢視,支援的匯出類型為“excel”、“word”、“pdf”、“html”、“csv”、“xml”和“json”。 對於報告,支援的匯出類型僅內含“excel”、“word”、“pdf”和“html”。
  2. 自訂模板 匯出 API 不支援 。 具有自訂模板的表格/報告無法儲存為外部檔案。
  3. 匯出的檔案儲存在匯出資料夾中(在上傳資料夾下)。 預設資料夾名稱為 “export-<項目 ID>” 中變更它 ,您可以在進階設定 -> 匯出資料夾
  4. 為了避免 JWT 過期並保護您的站台,在使用匯出 API 時,您可以指定更長的過期時間,但僅在從登入 API 取得 JWT 時才具有匯出 權限 。 請參閱 中的過期 權限 參數 登入 API 以了解更多詳細訊息。 例如,要取得僅具有匯出權限的 24 小時 JWT,請將 過期 設定為 24, 權限 設定為 1024。

有關 Swagger UI 的更多訊息,請參閱 使用 Swagger UI 進行 API 。

有關匯出 API 的更多詳細訊息,請閱讀 REST API 。

PHP程式設計+MySQL資料庫+PHPMaker整合教學(密訓基地):快速設計網站與網頁
總教頭特別企畫【專業整合課程】比傳統的學習的還要快速與實用!
感謝您造訪 PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學)密訓基地。
你可進入教學詳細內容介紹頁 面,詳細瞭解PHP程式設計+MySQL資料庫(PHPMaker運用設計網站教學)及相關技術維護影片教學
(完整配套措施),馬上可以設計架站程式與 PHP網頁,快速建立MySQL資料庫、自動生成PHP網頁。

可對資料庫進行瀏覽、修改、查詢、加入和刪除(整合成我們需要的網站)。 要在網路上經營網站賺大錢,不能只會下載現有的程式來架站(自己設計才能完全符合專業的特殊需求) 

你不用死背PHP語法,更可以完全不用花錢用購買資料庫(PHPMySQL完全免費!)

你可以透過技術學習,讓PHP程式網頁+網路資料庫+Dreamweaver整合教學→讓你快速成為:【動態網站程式設計專家→你能因此賺大錢】!

PHP程式設計+MySQL資料庫+PHPMaker整合教學(密訓基地)

http://por.tw/php/new-E_learning/index.php

PHP程式設計+MySQL資料庫+PHPMaker整合教學(密訓基地)洪  總教頭  敬上

PHP程式設計問題諮詢:
要如何使Html/PHP格式的字串不被解釋,而是照原樣顯示?

———————————————————
PHP程式設計問題回覆:
使Html/PHP格式的字串不被解釋,你可以這樣處理:

<?PHP
$str=”<h1>PHP</h1>”;
Echo “被解釋過的: “.$str.”<br>經過處理的:”;
Echo  htmlentities(nl2br($str));
?>
———————————————————

常用的php正則表達式及語法註解:

符合中文字元的正則表達式: [u4e00-u9fa5]
註解:符合中文還真是個頭疼的事,有了這個表達式就好辦了

符合雙位元組字元(內含中文字在內):[^x00-xff]
註解:可以用來計算字串的長度(一個雙位元組字元長度計2,ASCII字元計1)

符合空白行的正則表達式:
s*

註解:可以用來刪除空白行

符合 HTML標示的正則表達式:<(S*?)[^>]*>.*?|<.*? />
註解:網上流傳的版本太糟糕,上面這個也僅僅能符合部分,對於複雜的嵌套標示依舊無能為力

符合首尾空白字元的正則表達式:^s*|s*$
註解:可以用來刪除行首行尾的空白字元(內含空格、製表符、換頁符等等),非常有用的表達式

符合Email位址的正則表達式:w+ ([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
註解:表單驗證時很實用

符合網址URL的正則表達式:[a-zA-z]+://[^s]*
註解:網上流傳的版本功能很有限,上面這個基本可以滿足需求

符合帳號是否合法 (字母開頭,容許5-16位元組,容許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
註解:表單驗證時很實用

符合電話號碼:d{3}-d{8}|d{4}-d{7}
註解:符合形式如 0511-4405222 或 021-87888822

符合騰訊QQ號:[1-9][0-9]{4,}
註解:騰訊QQ號從10000開始

符合中國郵政編碼:[1-9]d{5}(?! d)
註解:中國郵政編碼為6位數字

符合身份證:d{15}|d{18}
註解:中國的身份證為15位或18位

符合ip位址:d+.d+.d+.d+
註解:提取ip位址時有用

符合特定數字:
^[1-9]d*$    //符合正整數
^-[1-9]d*$   //符合負整數
^-?[1-9]d*$   //符合整數
^[1-9]d*|0$   //符合非負整數(正整數 + 0)
^-[1-9]d*|0$   //符合非正整數(負整數 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$    //符合正浮點數
^-([1-9]d*.d*|0.d*[1-9]d*)$  //符合負浮點數
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$   //符合浮點數
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //符合非負浮點數(正浮點數 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //符合非正浮點數(負浮點數 + 0)
註解:處理大量資料時有用,具體應用時注意修正

符合特定字串:
^[A-Za-z]+$  //符合由26個英文字母組成的字串
^[A-Z]+$   //符合由26個英文字母的大寫組成的字串
^[a-z]+$  //符合由26個英文字母的小寫組成的字串
^[A-Za-z0-9]+$   //符合由數字和26個英文字母組成的字串
^w+$  //符合由數字、26個英文字母或是下劃線組成的字串
註解:最基本也是最常用的一些表達式

PHP網站程式設計軟體-phpDesigner 7 繁體中文版

phpDesigner 7 繁體中文版為商業付費軟體!
phpDesigner 7是所有你需要為你的網站開發工具軟體。
迅速快捷,功能齊全的PHP編輯器和PHP的IDE內置的HTML,CSS和JavaScript編輯器和FTP/ SFTP發布!

 建立,編輯,調試,分析和發布了PHP,HTML,CSS和JavaScript
 提高生產率,節省時間的功能,以加快您的開發

 工作與 jQuery,Ext JS, YUI, Dojo, MooTools,Prototype和所有PHP框架

備註:此軟體為多國語系版(安裝後選擇繁體語系,就可以變成繁體中文版)

PHP網站程式設計軟體-phpDesigner 7 繁體中文版官方下載網址:

http://www.mpsoftware.dk/thank-you-for-downloading-phpdesigner.php

———————————————————————–

phpDesigner 7 is more than just a powerful and lightning fast PHP IDE and PHP editor – it's also a full-featured HTML-, CSS- and javascript editor boosted with features so you can get your work done – for both beginners and professional developers! phpDesigner 7 assists you with everything from editing, analyzing, debugging to publishing websites powered by PHP, HTML, CSS to javascript plus other languages! phpDesigner 7 supports not only working with your favorite PHP frameworks but also popular javascript frameworks jQuery, Ext JS, YUI, Dojo, MooTools and Prototype! phpDesigner 7 comes with new features and improvements that will help you boost your coding and make phpDesigner 7 to the preferred complete PHP IDE and Web development tool for both beginners and professional developers!

Main features:
» Intelligent syntax highlighting with dim and no dim
» Syntax check for PHP, HTML and CSS
» Code completion for PHP, HTML, CSS and javascript including jQuery and other popular javascript frameworks
» Code tip for PHP and javascript
» Code inspector for HTML
» Intuitive way to navigate through your code including your projects
» Support for nested PHP objects
» Advanced support for working with PHP classes
» Support for PHP and javascript object oriented programming (oop)
» Code inspector for HTML
» Code explorer for PHP (with filter), CSS and javascript
» Work with any PHP framework (including through the code completion and code tip)
» Go to any PHP, CSS and javascript declarations
» See support for jQuery in phpDesigner 7 in action
» Debug and profile PHP scripts with Xdebug
» Easy to learn interface and fun to use

phpDesigner7 latest version is 7.2.4 new
phpDesigner 7 is all you need for your web-development.
Rapid fast and full-featured PHP editor and PHP IDE with built-in HTML, CSS and JavaScript editors and FTP/SFTP!

 Create, edit, debug, analyze and publish PHP, HTML, CSS and JavaScript
 Boost productivity with tons of time-saving features to speed up your development
 Work with jQuery, Ext JS, YUI, Dojo, MooTools, Prototype and all PHP frameworks

解決:執行程式發生記憶體不足解決方法 Fatal error

網頁開啟後出現這樣的字串:Fatal error: Allowed memory size of 16789338 bytes exhausted

這是因為:php 執行程式發生記憶體不足解決方法 Fatal error: Allowed memory size of 16789338 bytes exhausted
在php.ini 文件裡把memory_limit = 16M這個數值調大,例如修改成32M或更大。

今天總教頭在此提供一個更好的解決方法,只要直接在php程式中設定
(當然:記憶體大小可視需求,記得要放在整個程式的前面)就可以了

<?php

ini_set(‘memory_limit’,’128m’);

?>

這個方法是在php程式上動態設定memory,不會動到PHP的全域變數設定。
馬上可以解決執行程式發生記憶體不足解決方法 Fatal error……………

MySQL的資料精靈-SQL Maestro Group Data Wizard For MySQL 12.6.0.1

針對MySQL的資料精靈是一個功能強大的Windows圖形使用者介面管理你的MySQL資料的效用。
它提供了一個易於使用的工具,輕鬆快速地執行所需的資料處理的數量。

主要特點:
– 資料泵:任何架構和資料轉移到MySQL
– 多達18檔案格式的資料匯出
– 從Excel中,CSV,文字檔案和資料匯入
– ASP.NET發電機:建立ASP.NET腳本的全套
– 靈活的任務調度
– 在背景模式下執行任務的代理申請
– 強大的指令行介面



Data Wizard for MySQL is a powerful Windows GUI utility for managing your MySQL data.
It provides you with a number of easy-to-use tools for performing the required data manipulation easily and quickly.

Key features:
– Data Pump: transfer any schema and data to MySQL
– Data export to as many as 18 file formats
– Data import from Excel, CSV, text files and more
– ASP.NET Generator: create full set of ASP.NET scripts
– Flexible Task Scheduler
– The Agent application to execute tasks in background mode
– Powerful command-line interface

官方網站:  http://www.sqlmaestro.com

SQL.Maestro.Group.Data.Wizard.For.MySQL.v12.6.0.1

類建立好了..
那麼類肯定不止這些東西,它由繼承,屬性,返回值等.

1.方法的參數.
有方法,該方法就可能要有參數.參數是如何傳遞過來的呢?
如果看過之前的文章.那麼你肯定就知道了..是的 與普通函數的參數相同.
聲明char類型的指標用來儲存參數的值.
聲明int類型的變量來儲存的參數長度
然後用到 zend_parse_parameters函數
zend_parse_parameters(“,`< char *type_spec>`,`< …>`)
該參數有幾個重要的參數
第一個是參數的個數
第二個比較重要,它指定接收參數的類型
下面這份清單完整地列舉出了我們可以指定接收的參數類型:

l – 長整數

d – 雙精度浮點數

s – 字串 (也可能是空位元組)和其長度

b – 布林值

r – 資源, 儲存在 zval*

a – 陣列, 儲存在 zval*

o – (任何類的)對像, 儲存在 zval*

O – (由class entry 特殊的類的)對像, 儲存在 zval*

z – 實際的 zval*

下面的一些字元在類型說明字串(就是那個 char *type_spec)中具有特別的含義:

| – 顯示剩下的參數都是可選參數。如果使用者沒有傳進來這些參數值,那麼這些值就會被起始化成預設值。

/ – 顯示參數解析函數將會對剩下的參數以 SEPARATE_ZVAL_IF_NOT_REF() 的模式來提供這個參數的一份覆制,除非這些參數是一個引用。

! – 顯示剩下的參數容許被設定為 NULL(僅用在 a、o、O、r和z身上)。如果使用者傳進來了一個 NULL 值,則存儲該參數的變量將會設定為 NULL。
函數 get接收兩個參數 ,第一個參數是必填字串類型,第二個參數是可選為整型.
PHP代碼如下
1
2
3
    
function get($name,$age=0){
 
}

如果要在延伸裡實現這樣的功能,zend_parse_parameters的使用如下
char* name;
int name_length;
int age;
int age_length;
zend_parse_parameters(ZEND_NUM_ARGS ,」s|l」,&name,&name_length,&age,&age_len)
zend_parse_parameters 執行失敗的話會返回FAILURE.
執行完成後,name就是第一個參數的值,age就是第二個參數的值
我們甚至可以呼叫php_printf函數來輸出.

2.類的屬性
這類的內容在上一篇文章中其實已經講清楚了.
用zend_declare_property_*一系列函數來建立我們的屬性.當然是在PHP_MINIT_FUNCTION函數中建立
以 zend_declare_property_null為例:
zend_declare_property_null(“,`< char *name>`,`< int name_length>`,`< int access_type TSRMLS_DC>`)
ce :是一個zend_class_entry的指標.
name :是屬性的名稱
length :屬性名稱的長度
access_type:屬性的訪問層級.
還有其他幾個函數 用法一樣.
1
2
3
4
5
6
7
    
zend_declare_property_bool
zend_declare_property_double
zend_declare_property_ex
zend_declare_property_long
zend_declare_property_null
zend_declare_property_string
zend_declare_property_stringl

3.讀取屬性
建立了屬性,那麼該如何讀取此屬性呢?
zend_read_property(“,`< zval *object>`,`< char *name>`,`< int name_length>`,`< zend_bool silent TSRMLS_DC>`);
就要使用這個函數了,它將取得到的屬性訊息返回到一個zval結構體中
這時候要用到函數getThis();
這個函數會返回一個zval的指標.
因為是一個對像 所以儲存在結構體_zend_object_value 中
typedef struct _zend_object_value {
zend_object_handle handle;
zend_object_handlers *handlers;
} zend_object_value;
第一個參數會呼叫 zend_object_handler所指向的函數指標get_class_entry來取得現用的執行的類的訊息.
第一個參數應該是 Z_OBJEC_P(getThis());
第二個參數是 getThis();
它定義為 #define getThis() (this_ptr);
this_ptr是什麼東西我還不確定,我想應該是PHP內核維護的一個儲存類訊息的zval對像.回頭再好好研究研究.
第三個參數是要取得的屬性
第四個參數是屬性的長度.
修改之後的getproperty方法
1
2
3
4
5
6
    
PHP_METHOD(Person,getproperty){
        zval* self=getThis();
        zval* name;
        name=zend_read_property(Z_OBJCE_P(self),self,ZEND_STRL("name"),0 TSRMLS_CC);
        php_printf("%s",name->value.str.val);
}

4.設定屬性
該如何更新屬性的值呢?
同樣給我們提供了一個函數
zend_update_property(“,`< zval *object>`,`< char *name>`,`< int name_length>`,`< zval *value TSRMLS_DC>`)
前四個參數與zend_read_property相同.
不同的是最後一個zval*value.它是我們屬性的值..因為他是一個zval的指標,所以我們需要將通過zend_parse_parameters取得到的參數轉為一個zval的指標.
修改後的setproperty方法.
1
2
3
4
5
6
7
8
9
10
11
12
13
    
PHP_METHOD(Person,setproperty){
        char *key=NULL;
        int key_len;
        char *val=NULL;
        int val_len;
        zval* self=getThis();
        zval* value;
        if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,"ss",&key,&key_len,&val,&val_len)==FAILURE){
                return;
        }
        MAKE_STD_ZVAL(value);
        ZVAL_STRINGL(value,val,val_len,1);
        zend_update_property(Z_OBJCE_P(self),self,key,key_len,value TSRMLS_CC);

最後make && make install,重啟apache.
這樣我們在 php代碼裡.
1
2
3
4
5
    
<?php
$a=new Person();
$a->setproperty("name","this is siren");
$a->getproperty();
?>

就可以輸出我們通過setproperty設定的值了.

聲明:本文為斯人原創,全部為作者一一分析得之,有不對的地方望賜教。
歡迎轉載,轉載請註明出處 。
本文位址:http://imsiren.com/archives/581

PHP程式設計問題諮詢:
如何比較兩個日期相差幾天?

———————————————————
PHP程式設計問題回覆:
要如何比較兩個日期相差幾天,請看以下的範例:

<?PHP
$Date_1="2003-7-15";//也可以是:$Date_1="2003-6-25 23:29:14";
$Date_2="1982-10-1";
$Date_List_1=explode("-",$Date_1);
$Date_List_2=explode("-",$Date_2);
$d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]);
$d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]);
$Days=round(($d1-$d2)/3600/24);
Echo   "我已經奮鬥了 $Days 天^_^";
?>

———————————————————

PHP網站如何防止CC攻擊呢?

所謂的CC攻擊就是對方利用程式或一些代理對您的網站進行不間斷的訪問,造成您的網站處理不了而處於當機狀態。
這種時候您的統計系統(可能是量子、百度等)當然也是統計不到的。
不過我們可以借助於一些防攻擊的軟體來實現,不過效果有時並不明顯。
下面我提供一段PHP的代碼,可以起到一定的防CC效果。

 

主要功能:在3秒內連續重整頁面5次以上將指向本機 http://127.0.0.1

在PHP網站開發中為了網站推廣和SEO等需要,需要對網站進行全站或局部靜態化處理,PHP生成靜態HTML頁面有多種方法
例如:利用PHP範本、快取等實現頁面靜態化
今天就以PHP案例教學形式討論PHP生成靜態頁面的方法。
頁面靜態化的方法,分為兩種
一種是偽靜態,就是url 重寫
一種是你真的靜態化。

下面介紹PHP中頁面靜態化的方法。

什麼是PHP程式網頁靜態化?
PHP程式網頁靜態化的簡單理解就是使網站生成頁面以靜態HTML的形式展現在訪客面前
PHP靜態化分純靜態化和偽靜態化,兩者的區別在於PHP生成靜態頁面的處理機制不同。

 

PHP程式網頁生成靜態HTML頁面的方法:
1、利用PHP範本生成靜態頁面
PHP範本實現靜態化非常方便,比如安裝和使用PHP Smarty實現網站靜態化。

2、使用PHP檔案讀寫功能生成靜態頁面
PHP生成靜態頁面案例代碼

<?
$out1 = “<html><head><title>PHP程式網頁靜態化教學</title></head>
<body>歡迎訪問PHP網站開發教學網http://por.tw,本文主要介紹PHP網站頁面靜態化的方法
</body></html>”;
$fp = fopen(“leapsoulcn.html”,”w”);
if(!$fp)
{
echo “System Error”;
exit();
}
else {
fwrite($fp,$out1);
fclose($fp);
echo “Success”;
}
?>
———————————————————————–
    3、使用PHP輸出控制函數(Output Control)生成靜態頁面

    輸出控制函數(Output Control)也就是使用和控制快取來生成靜態HTML頁面,也會使用到PHP檔案讀寫函數。

    PHP生成靜態頁面案例代碼

———————————————————————–
<?
ob_start();
echo “<html>”.
“<head>”.
“<title>PHP網站靜態化教學</title>”.
“</head>”.
“<body>歡迎訪問PHP網站開發教學網http://por.tw,本文主要介紹PHP網站頁面靜態化的方法</body>”.
“</html>”;
$out1 = ob_get_contents();
ob_end_clean();
$fp = fopen(“leapsoulcn.html”,”w”);
if(!$fp)
{
echo “System Error”;
exit();
}
else
{
fwrite($fp,$out1);
fclose($fp);
echo “Success”;
}
?>
———————————————————————
我們知道使用PHP進行網站開發,一般執行結果直接輸出到遊覽器,為了使用PHP生成靜態頁面,就需要使用輸出控制函數控制快取區,以便取得快取區的內容,然後再輸出到靜態HTML頁面檔案中以實現網站靜態化。

PHP生成靜態頁面的思路為:
首先開啟快取,然後輸出了HTML內容(你也可以通過include將HTML內容以檔案形式包括進來),之後取得快取中的內容,清理快取後通過PHP檔案讀寫函數將快取內容寫入到靜態HTML頁面檔案中。

獲得輸出的快取內容以生成靜態HTML頁面的過程需要使用三個函數:
ob_start()、ob_get_contents()、ob_end_clean()。

   PHP程式網頁生成靜態頁面知識:

   1、ob_start函數一般主要是用來開啟快取,注意使用ob_start之前不能有任何輸出,如空格、字元等。

        2、ob_get_contents函數主要用來取得快取中的內容以字串形式返回,注意此函數必須在ob_end_clean函數之前呼叫,否則取得不到快取內容。

        3、ob_end_clean函數主要是清理快取中的內容並關閉快取,完成則返回True,失敗則返回False

PHP輸出控制函數(Output Control)有很多應用。

至此,使用PHP生成靜態HTML頁面以實現網站靜態化的方法就介紹完了,根據實際情況和需求你可以選取不同的靜態化方法。

[PHP] include_once 與 require_once(包含其它的檔案進來)

include_once 與 require_once都是PHP的函式,主要是要包含其它的檔案進來,而且萬一該檔案被包含過了,則不會重新再包含一次。

而基於PHP不可能開發同一個函式的情況下,去試了一下他的不同之處,在於include_once萬一遇到錯誤,則會持續執行。
但require_once則會停止執行,並產生Fatal Errors。

以程式碼說明如下:

檔名:test.php

<?php
 require_once("a.php");
 require_once("c.php");
 echo dirname(__FILE__)." in test.php ";
?>

檔名:a.php

<?php
 echo dirname(__FILE__)." in a.php"."</br>";
 require_once("b.php");
?>

檔名:b.php

<?php
 echo dirname(__FILE__)." in b.php"."</br>";
?>

則會出現下列結果:
C:AppServwwwPTS in a test.php
C:AppServwwwPTS in b test.php

Warning: require_once(c.php) [function.require-once]: failed to open stream: No such file or directory in C:AppServwwwPTS est.php on line 3

Fatal error: require_once() [function.require]: Failed opening required 'c.php' (include_path='.;C:php5pear') in C:AppServwwwPTS est.php on line 3
但若是改成include_once,則會變成
C:AppServwwwPTS in a test.php
C:AppServwwwPTS in b test.php

Warning: require_once(c.php) [function.require-once]: failed to open stream: No such file or directory in C:AppServwwwPTS est.php on line 3

Warning: include_once() [function.include]: Failed opening 'c.php' for inclusion (include_path='.;C:php5pear') in C:AppServwwwPTS est.php on line 3
C:AppServwwwPTS in test.php
由此應該可以很輕易地看出兩者的不同了!