成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > PHP開發(fā)之歸檔格式phar文件概念與用法詳解【創(chuàng)建,使用,解包還原提取】

PHP開發(fā)之歸檔格式phar文件概念與用法詳解【創(chuàng)建,使用,解包還原提取】

熱門標(biāo)簽:隨州銷售電銷機(jī)器人公司 百度地圖標(biāo)注類型是酒店 全國各省地圖標(biāo)注點 網(wǎng)絡(luò)電話400申請 外呼系統(tǒng)人工客服 周口網(wǎng)絡(luò)回?fù)芡夂粝到y(tǒng) 福建高頻外呼防封系統(tǒng)哪家好 400電話申請辦理 商丘外呼系統(tǒng)好處

本文實例講述了PHP開發(fā)之歸檔格式phar文件概念與用法。分享給大家供大家參考,具體如下:

一個php應(yīng)用程序往往是由多個文件構(gòu)成的,如果能把他們集中為一個文件來分發(fā)和運行是很方便的,這樣的列子有很多,比如在window操作系統(tǒng)上面的安裝程序、一個jquery庫等等,為了做到這點php采用了phar文檔文件格式,這個概念源自java的jar,但是在設(shè)計時主要針對 PHP 的 Web 環(huán)境,與 JAR 歸檔不同的是Phar 歸檔可由 PHP 本身處理,因此不需要使用額外的工具來創(chuàng)建或使用,使用php腳本就能創(chuàng)建或提取它。phar是一個合成詞,由PHP 和 Archive構(gòu)成,可以看出它是php歸檔文件的意思。

關(guān)于phar的官網(wǎng)文檔請見http://php.net/manual/zh/book.phar.php,本文檔可以看做和官網(wǎng)文檔互為補(bǔ)充

phar歸檔文件有三種格式:tar歸檔、zip歸檔、phar歸檔,前兩種執(zhí)行需要php安裝Phar 擴(kuò)展支持,用的也比較少,這里主要講phar歸檔格式。

phar格式歸檔文件可以直接執(zhí)行,它的產(chǎn)生依賴于Phar擴(kuò)展,由自己編寫的php腳本產(chǎn)生。

Phar 擴(kuò)展對 PHP 來說并不是一個新鮮的概念,在php5.3已經(jīng)內(nèi)建于php中,它最初使用 PHP 編寫并被命名為 PHP_Archive,然后在 2005 年被添加到 PEAR 庫。由于在實際中,解決這一問題的純 PHP 解決方案非常緩慢,因此 2007 年重新編寫為純 C 語言擴(kuò)展,同時添加了使用 SPL 的 ArrayAccess 對象遍歷 Phar 歸檔的支持。自那時起,人們做了大量工作來改善 Phar 歸檔的性能。

Phar 擴(kuò)展依賴于php流包裝器,關(guān)于此可參考前面一篇文章PHP流Streams、包裝器wrapper概念與用法實例詳解

很多php應(yīng)用都是以phar格式分發(fā)并運行的,著名的有依賴管理:composer、單元測試:phpunit,下面我們來看一看如何創(chuàng)建、運行、提取還原。

phar文件的創(chuàng)建:

首先在php.ini中修改phar.readonly這個選項,去掉前面的分號,并改值為off,由于安全原因該選項默認(rèn)是on,如果在php.ini中是禁用的(值為0或off),那么在用戶腳本中可以開啟或關(guān)閉,如果在php.ini中是開啟的,那么用戶腳本是無法關(guān)閉的,所以這里設(shè)置為off來展示示例。

我們來建立一個項目,在服務(wù)器根目錄中建立項目文件夾為project,目錄內(nèi)的結(jié)構(gòu)如下:

file
  -yunek.js
  -yunke.css
lib
  -lib_a.php
template
  -msg.html
index.php
Lib.php

其中file文件夾有兩個內(nèi)容為空的js和css文件,僅僅演示phar可以包含多種文件格式

lib_a.php內(nèi)容如下:

?php
/**
 * Created by yunke.
 * User: yunke
 * Date: 2017/2/10
 * Time: 9:23
 */
function show(){
  echo "l am show()";
}

msg.html內(nèi)容如下:

!DOCTYPE html>
html lang="en">
head>
  meta charset="UTF-8">
  title>phar/title>
/head>
body>
?=$str; ?>
/body>
/html>

index.php內(nèi)容如下:

?php
/**
 * Created by yunke.
 * User: yunke
 * Date: 2017/2/10
 * Time: 9:17
 */
require "lib/lib_a.php";
show();
$str = isset($_GET["str"]) ? $_GET["str"] : "hello world";
include "template/msg.html";

Lib.php內(nèi)容如下:

?php
/**
 * Created by yunke.
 * User: yunke
 * Date: 2017/2/10
 * Time: 9:20
 */
function yunke()
{
  echo "l am yunke()";
}

項目文件準(zhǔn)備好了,開始創(chuàng)建,現(xiàn)在在project文件夾同級目錄建立一個yunkeBuild.php,用于產(chǎn)生phar格式文件,內(nèi)容如下:

?php
/**
 * Created by yunke.
 * User: yunke
 * Date: 2017/2/10
 * Time: 9:36
 */
//產(chǎn)生一個yunke.phar文件
$phar = new Phar('yunke.phar', 0, 'yunke.phar');
// 添加project里面的所有文件到y(tǒng)unke.phar歸檔文件
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
//設(shè)置執(zhí)行時的入口文件,第一個用于命令行,第二個用于瀏覽器訪問,這里都設(shè)置為index.php
$phar->setDefaultStub('index.php', 'index.php');

然后在瀏覽器中訪問這個yunkeBuild.php文件,將產(chǎn)生一個yunke.phar文件,此時服務(wù)器根目錄結(jié)構(gòu)如下:

project
yunkeBuild.php
yunke.phar

這就是產(chǎn)生一個phar歸檔文件最簡單的過程了,更多內(nèi)容請看官網(wǎng),這里需要注意的是如果項目不具備單一執(zhí)行入口則不宜使用phar歸檔文件

phar歸檔文件的使用:

我們在服務(wù)器根目錄建立一個index.php文件來演示如何使用上面創(chuàng)建的phar文件,內(nèi)容如下:

?php
/**
 * Created by yunke.
 * User: yunke
 * Date: 2017/2/8
 * Time: 9:33
 */
require "yunke.phar";
require "phar://yunke.phar/Lib.php";
yunke();

如果index.php文件中只有第一行,那么和不使用歸檔文件時,添加如下代碼完全相同:

require "project/index.php";

如果沒有第二行,那么第三行的yunke()將提示未定義,所以可見require一個phar文件時并不是導(dǎo)入了里面所有的文件,而只是導(dǎo)入了入口執(zhí)行文件而已,但在實際項目中往往在這個入口文件里導(dǎo)入其他需要使用的文件,在本例中入口執(zhí)行文件為project/index.php

phar文件的提取還原:

我們有時候會好奇phar里面包含的文件源碼,這個時候就需要將phar文件還原,如果只是看一看的話可以使用一些ide工具,比如phpstorm 10就能直接打開它,如果需要修改那么就需要提取操作了,為了演示,我們下載一個composer.phar放在服務(wù)器目錄,在根目錄建立一個get.php文件,內(nèi)容如下:

?php
/**
 * Created by yunke.
 * User: yunke
 * Date: 2017/2/9
 * Time: 19:02
 */
$phar = new Phar('composer.phar');
$phar->extractTo('composer'); //提取一份原項目文件
$phar->convertToData(Phar::ZIP); //另外再提取一份,和上行二選一即可

用瀏覽器訪問這個文件,即可提取出來,以上列子展示了兩種提取方式:第二行將建立一個composer目錄,并將提取出來的內(nèi)容放入,第三行將產(chǎn)生一個composer.zip文件,解壓即可得到提取還原的項目文件。

補(bǔ)充:

1、在部署phar文件到生產(chǎn)服務(wù)器時需要調(diào)整服務(wù)器的配置,避免當(dāng)訪問時瀏覽器直接下載phar文件

2、可以為歸檔設(shè)置別名,別名保存在歸檔文件中永久保存,它可以用一個簡短的名字引用歸檔,而不管歸檔文件在文件系統(tǒng)中存儲在那里,設(shè)置別名:

$phar = new Phar('lib/yunke.phar', 0);
$phar->setAlias ( "yun.phar");

設(shè)置別名后可以如下使用:

?php
require "lib/yunke.phar";
require "phar://yun.phar/Lib.php"; //使用別名訪問歸檔文件
require "phar://lib/yunke.phar/Lib.php"; //當(dāng)然仍然可以使用這樣的方式去引用

如果在制作phar文件時沒有指定別名,也可以在存根文件里面使用Phar::mapPhar('yunke.phar');指定

3、歸檔文件中有一個存根文件,其實就是一段php執(zhí)行代碼,在制作歸檔時可以設(shè)置,直接執(zhí)行歸檔文件時,其實就是執(zhí)行它,所以它是啟動文件;在腳本中包含歸檔文件時就像包含普通php文件一樣包含它并運行,但直接以phar://的方式包含歸檔中某一個文件時不會執(zhí)行存根代碼, 往往在存根文件里面require包含要運行的其他文件,對存根文件的限制僅為以__HALT_COMPILER();結(jié)束,默認(rèn)的存根設(shè)計是為在沒有phar擴(kuò)展時能夠運行,它提取phar文件內(nèi)容到一個臨時目錄再執(zhí)行,不過從php5.3開始該擴(kuò)展默認(rèn)內(nèi)置啟用了

4、制作的phar文件不能被改動,因此配置文件之類的文件需要另外放置在歸檔文件外面

5、mapPhar函數(shù):這個函數(shù)只應(yīng)該在stub存根代碼中調(diào)用,在沒有設(shè)置歸檔別名的時候可以用來設(shè)置別名,打開一個引用映射到phar流

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家PHP程序設(shè)計有所幫助。

您可能感興趣的文章:
  • 微信小程序?qū)W習(xí)筆記之表單提交與PHP后臺數(shù)據(jù)交互處理圖文詳解
  • 微信小程序與后臺PHP交互的方法實例分析
  • PHP后臺實現(xiàn)微信小程序登錄
  • 微信小程序?qū)崿F(xiàn)紅包功能(后端PHP實現(xiàn)邏輯)
  • 微信小程序支付功能 php后臺對接完整代碼分享
  • php微信小程序解包過程實例詳解

標(biāo)簽:六安 迪慶 佛山 定西 海南 樂山 十堰 南寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP開發(fā)之歸檔格式phar文件概念與用法詳解【創(chuàng)建,使用,解包還原提取】》,本文關(guān)鍵詞  PHP,開,發(fā)之,歸檔,格式,phar,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP開發(fā)之歸檔格式phar文件概念與用法詳解【創(chuàng)建,使用,解包還原提取】》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP開發(fā)之歸檔格式phar文件概念與用法詳解【創(chuàng)建,使用,解包還原提取】的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    99热精品一区二区| 小泽玛利亚av在线| 国产欧美日韩精品一区| 免费yellow网站| 国产乱人伦精品一区| 中文字幕日韩欧美在线| 成人免费xxxxx在线视频| 成人爽a毛片免费啪啪| 精品人妻一区二区三区三区四区| 不卡av一区二区| 免费人成在线观看视频播放| 日韩中文字幕有码| www.国产精品视频| 成人激情五月天| 欧美日韩在线免费| 国产真人做爰毛片视频直播| 草莓污污视频在线观看| 日韩中文字幕av在线| 91精品国产综合久久国产大片| 久久夜色精品国产噜噜亚洲av| 成人福利视频在线看| 欧美videos粗暴高清性| 国产一区二区丝袜| 中日韩美女免费视频网站在线观看| 无码播放一区二区三区| 成人ww免费完整版在线观看| 91久久国产综合久久| 伊人影院在线观看视频| 国产精品视频一二三区| 一本久久a久久免费精品不卡| 精品一区电影国产| 中文字幕少妇一区二区三区| 国产91精品久久久久久| 日韩影片在线播放| 精品久久久久久综合日本欧美| eeuss影院18直达| 亚洲图片激情小说| 999久久久精品一区二区| 黄视频网站在线观看| 在线 丝袜 欧美 日韩 制服| 久热这里有精品| 亚洲精华液一区二区三区| 亚洲an天堂an在线观看| 精品久久久久久无码国产| 日韩综合小视频| 91免费版网站在线观看| 日韩一区二区三区在线观看视频| 国产主播第一页| 黄色亚洲大片免费在线观看| 免费观看一级特黄欧美大片| 一个色在线综合| 亚洲综合激情| 韩国自拍一区| 亚洲一级理论片| 天堂91在线| 国产亚洲欧美一区二区三区| 免费高潮视频95在线观看网站| 日本欧美视频在线观看| 日韩精品久久久久久| 中文字幕亚洲日本| 亚洲aⅴ天堂av在线电影软件| 久久99精品久久久久子伦| www.com操| 国产免费一级| 国产91一区二区三区| 亚洲熟女一区二区| 亚洲精品中文字幕99999| 91看片淫黄大片一级| 性欧美成人播放77777| 亚洲成人77777| 亚洲国产一区在线观看| 欧美亚洲视频在线看网址| 国产精品久久久久国产a级| av国产在线观看| 成人短视频在线观看| 欧美啪啪一区| 精品中文字幕在线2019| 亚洲精品国产偷自在线观看| 日本成人动漫在线观看| 国产精品久久久久久久久免费看| 影音先锋中文字幕一区二区| 欧美国产日本在线| 欧美大片在线观看一区| 国产精品美女久久久久久久久| 亚洲精品国产成人av在线| 91成人免费视频| 国产真实乱人偷精品视频| 国产精品永久免费视频| 日本午夜在线亚洲.国产| 国产馆在线观看| 午夜日韩电影| 少妇高潮露脸国语对白| 国产黄色网页| 欧美另类z0zx974| 国产精品久久久91| 欧美xxxx综合视频| 久久97超碰国产精品超碰| 欧美视频在线免费播放| 日韩亚洲欧美一区二区| 亚洲一区二区三区美女| 6699嫩草久久久精品影院| 欧美日韩高清免费| 社区色欧美激情 | 国产xxxxxxxxx| 99热精品在线观看| 国产丝袜在线精品| 免费在线观看av电影| 精品人伦一区二区三区蜜桃网站| av电影中文字幕| 久久精品一区八戒影视| 欧美性猛交xxxx免费看蜜桃| 人妻av一区二区| 人妻 日韩精品 中文字幕| 99热这里只有精品在线| 国产一区二区三区影院| 麻豆精品一区二区三区视频| 亚洲欧洲黄色网| 天天干天天舔天天操| 国产精品视频成人| 啊v视频在线| 丝袜亚洲欧美日韩综合| 人人做人人澡人人爽欧美| 亚洲国产精品成人综合色在线婷婷| 91久久精品无码一区二区| zzzwww在线看片免费| 日韩午夜电影网| 日本精品一区二区三区在线| 免费国产阿v视频在线观看| 亚洲午夜精品一区 二区 三区| 免费网站在线观看黄| 亚洲国产精品毛片av不卡在线| 国产精品3区| 免费看久久久| 无码av中文一区二区三区桃花岛| 欧美亚洲在线观看| 日色在线视频| 国产精品蜜芽在线观看| 91福利免费在线| 成人免费视频观看| 超碰在线观看99| 日本h在线观看| 波多野结衣中文字幕在线播放| 国产婷婷色一区二区三区在线| 秋霞久久久久久一区二区| 91av亚洲| 欧美日韩一区在线观看| 国产又粗又爽| 国产中文字幕一区二区三区| 伊人无码高清| 中文字幕第88页| 日韩va亚洲va欧美va久久| 日本道中文字幕| 国产精品久久久久久久泡妞| 国产91精品最新在线播放| 欧美日韩精品一区二区三区视频| 欧美 日韩 国产一区| 蜜臀久久久久久久| 欧美精品在欧美一区二区少妇| 成人av小说网| 久久影院中文字幕| eeuss影院在线| 五月网丁香网| 国产偷亚洲偷欧美偷精品| 裸体女人亚洲精品一区| 亚洲人永久免费| 欧美黑人国产人伦爽爽爽| 亚洲性线免费观看视频成熟| 无码无遮挡又大又爽又黄的视频| 欧美日韩一级片网站| 在线观看一区二区三区三州| 国产真人做爰视频免费| 欧美精品aaa| 成人综合影院| 国产精品视频免费在线| 麻豆传媒在线看| 97人人精品| 九色蝌蚪在线视频| 色哟哟一区二区三区| 免费成人在线看| 国外成人福利视频| 国产亚洲欧美一区二区| h网站在线观看| 亚洲美女又黄又爽在线观看| 久久久久成人精品无码中文字幕| 日韩视频亚洲视频| 日本少妇激三级做爰在线| 在线观看免费小视频| 中文字幕亚洲欧美日韩| 国产精品一区二区在线观看| 国产免费观看久久| 日本高清不卡一区| 久久久久久久久网站| 久久国产精品一区二区| 欧美福利视频一区| 久久综合电影一区| 综合在线影院| r级无码视频在线观看| 粉嫩高清一区二区三区精品视频| 欧美日韩国产经典色站一区二区三区| 法国伦理少妇愉情| 欧美一区欧美二区| 亚洲成人久久久久| 同性恋视频一区| 这里视频有精品| a级在线观看视频| 精品久久久久久亚洲国产300| 成人女性文胸| 黄色免费高清视频| 美女扒开腿免费视频| 国产日韩欧美二区| 亚洲欧美在线一区| 国产精品一区二区三区四区色| 美女无遮挡网站| 欧美日韩国产在线看| 久久国产一区| 在线亚洲一区二区| 久久66热re国产| 日韩黄色中文字幕| 国产高清视频免费观看| 亚洲成国产人片在线观看| 日韩网红少妇无码视频香港| 久久中文免费视频| 精品精品国产三级a∨在线| 特黄特黄一级片| 国产日韩欧美视频| 亚洲精品小视频| 欧美一级日韩免费不卡| 久久久久国产精品午夜一区| 中文字幕丰满孑伦无码专区| 成人片黄网站色大片免费毛片| 操人视频在线观看欧美| 成人午夜又粗又硬又大| 欧美精品一区二区久久| 国产成人高清精品| 欧美激情视频在线观看| 中文字幕乱码在线人视频| 亚洲精品一区二区三区新线路| 免费人成网站在线观看欧美高清| 无码国产69精品久久久久同性| 老司机av在线免费看| 欧美12av| 久久亚洲一区二区三区明星换脸| 亚洲国产天堂| 国产精品第1页| 久热中文字幕精品视频在线| 激情五月播播久久久精品| 成人精品久久一区二区三区| 久久久视频在线| 久草视频视频在线播放| 国产传媒欧美日韩成人精品大片| 精品国产欧美成人夜夜嗨| 色婷婷狠狠综合| 久久精品一区二区三区不卡牛牛| 手机看片福利永久国产日韩| 中文字幕区一区二区三| 天天堂资源网在线观看免费视频| 日韩成人黄色av| 最新欧美人z0oozo0| 亚洲欧美激情一区| 亚洲精品合集| 亚洲人成在线观看一区二区| 国产成人免费视频网站高清观看视频| 久久久精品亚洲| 手机av在线免费| 亚洲精品日产| 亚洲午夜精品一区二区| 亚洲三区在线播放| 国产精品亲子乱子伦xxxx裸| 欧美最新大片在线看| 91在线看黄| 97精品免费视频| 久久手机免费观看| 深夜福利在线观看直播| jk破处视频在线| 午夜黄色福利视频| 黄网站免费在线| 久久久水蜜桃| 天堂√8在线中文| 妖精视频一区二区三区| 丝袜美腿高跟呻吟高潮一区| 欧美精品一区二区在线观看| 亚洲免费久久| 久久99中文字幕| 亚洲最大的黄色网址| 亚洲综合123| 99视频免费在线观看| 色先锋资源久久综合| 亚洲美女在线免费观看| 久久综合第一页| 182tv在线播放| 亚洲激情女人| 亚洲精蜜桃久在线| 久久久久综合| 亚洲第一大网站| 中文字幕亚洲精品在线观看| 岳毛多又紧做起爽| 免费在线小视频| 精品国产18久久久久久二百| 国产精品九九九九九| 性开放的欧美大片| 5g国产欧美日韩视频| 中文字幕精品无码亚| 136福利视频导航| 秋霞在线观看一区二区三区| 亚洲老头老太hd| 久久av二区| 国产一区二区剧情av在线| 国产国语亲子伦亲子| 亚洲一级黄色片| 欧美日韩小视频| 国产精品香蕉一区二区三区| 色香蕉在线视频| 国产精品10p综合二区| a√免费观看在线网址www| 天天看天天色| 丰满少妇乱子伦精品看片| 视频一区视频二区国产精品| 天天爽夜夜爽一区二区三区| 91亚洲国产成人久久精品麻豆| 一区二区三区在线视频免费观看| 久艹视频在线观看| 男人久久天堂| 91久久夜色精品国产网站| 成人影院在线视频| 久久久久久久久久国产精品| 欧美精品v国产精品v日韩精品| 污视频在线免费观看一区二区三区| 日韩伦人妻无码|