php實現任意文字檔案的模板替換

2021-09-24 16:27:40 字數 1422 閱讀 7926

php的模板替換功能很強大,不僅僅可以用於網頁,實際上可以用於任何文字檔案的模板替換。因此對於一些**的自動生成需求來說,php的模板替換是乙個很強大的功能。php 執行乙個檔案時,在<?php ...?>之外的內容會原封不動地輸出,<?php ...?>內部的內容會動態執行。再配合作業系統的重定向命令,可以很方便地將替換後的結果寫入檔案。

張三你好:

下面這幾天該上課:

周二要上數學課

週三要上語文課

周五要上體育課

其它時侯都可以睡懶覺!

可以發現 上面文件中的課程安排是需要重複生成的,如果用模板替換的方式來自動生成,就會很方便。

為此我們準備乙個模板檔案如下:

這是乙個模板替換的例子

<?=$person?>你好:

下面這幾天該上課:

<?php foreach ($weektask as $key =>$value) ?>

其它時侯都可以睡懶覺!

進行模板替換操作的php載入檔案

<?php

//用於替換的模板變數

$person

='張三'

;$weektask=[

'周二'

=>

'數學'

,'週三'

=>

'語文'

,'周五'

=>

'體育'];

//載入模板檔案,輸出內容就是要生成的結果

require_once

"template.txt"

;?>

執行載入檔案,重定向生成結果檔案的指令碼

php templateworker.php > output.txt
這個指令碼的功能很明確,就是執行載入檔案templateworker.php,將其從標準輸出的內容重定向到output.txt。

將以上三個檔案放在同乙個目錄下,雙擊執行make.bat,就會得到結果檔案output.txt。

補充說明一下:要實現這個效果,必須保證在命令列中可以執行php.exe .因此有必要將php.exe所在的目錄加入到作業系統的環境變數path中去。如果是linux或mac os。php往往是預先就裝好的,隨時可以執行,就少了這一步的麻煩。

這是乙個模板替換的例子

張三你好:

下面這幾天該上課:

周二要上數學課

週三要上語文課

周五要上體育課

其它時侯都可以睡懶覺!

這樣就達到了通過模板替換生成結果檔案的效果。如果對php程式設計中的網頁替換比較熟悉的朋友就會發現在替換語法上是完全一模一樣的。只是有的人會將php侷限在網頁開發上,但實際上php也是乙個很強大的命令列工具。在批處理,自動**生成方面都有很廣的應用。

使用protobuf實現任意檔案的傳輸

可以使用proto中的bytes資料型別,將乙個檔案寫入到bytes欄位,然後傳輸,收到資料後,重新抽取bytes,組裝成檔案 syntax proto3 import sensor.proto message framepackage message filepackage message fil...

matlab讀取任意格式的文字檔案

有些時候,我們需要用matlab讀取自定義格式的文字檔案。比如有這樣乙個資料 families.txt bob,32,father alice,31,mother mike,4,son jonh,7,son dick,30,father judy,30,mother sophia,6,daughte...

Python實現統計文字檔案字數的方法

統計文字檔案的字數,從當前目錄下的file.txt取檔案 coding gbk import string import sys reload sys def compareitems w1,c1 w2,c2 if c1 c2 return 1 elif c1 c2 return cmp w1,w2...