㈠ php 怎把上傳的rar zip文件 自動解壓 用的是哪個函數 求高手指點 告急 謝謝 求源代碼
/**
* PHP在線壓縮/解壓實例
*/
date_default_timezone_set('prc');
$zip = new engine_compress_decompress();
if (isset($_POST))
{
$sourcePath = ''; //默認位置
if (isset($_FILES['upfile'])) //上傳文件
{
$stmp = $zip->fileUpload('upfile');
$sourcePath = $stmp['sourcefile'];
$upfileError = $stmp['error'];
}
elseif (isset($_POST['inputfile'])) //輸入目錄或者文件
{
$sourcePath = $_POST['inputfile'];
}
elseif (isset($_POST['decompresssourcefiles'])) //解壓縮提交
{
$isDecompress = $zip->decompress($_POST['decompresssourcefiles'], $_POST['topath']);
if (!empty($isDecompress['filelist']))
{
$href = '<script type="text/javascript" language="javascript">window.location.href=\'#decompress\'</script>';
}
}
$fileList = $zip->fileArray($sourcePath); //解壓縮文件列表
if (isset($_POST['compressinputfileorfolder'])) //壓縮文件目錄或者文件輸入
{
$sourcePath = $_POST['compressinputfileorfolder'];
$href = '<script type="text/javascript" language="javascript">window.location.href=\'#compress\'</script>';
$compressFilelist = $zip->compressFileArray($sourcePath); //壓縮文件列表
}
elseif ((isset($_POST['selectcompressfilelist'])) && (isset($_POST['compresssavefilename'])))
{
$compressFiles = $zip->compress($_POST['selectcompressfilelist'], $_POST['compresssavefilename']); //真實檢測
$isCompress = $zip->CompileZipFile($compressFiles, $zip->savePath, 'all');
if (!empty($isCompress))
{
$href = '<script type="text/javascript" language="javascript">window.location.href=\'#compress\'</script>';
}
}
}
㈡ php的openssl_sign($data,$sign,$private_key)這個函數的源碼是什麼
這個是打開https的訪問所用的到的函數
㈢ PHP文件執行時顯示源代碼
<form action="access_cars.php" method="post"> 按樓主這么寫,你的 access_cars.php 應該放在表單這個html同一個文件夾下,且這個文件夾裡面可以運行php的
㈣ 如何才能查看PHP內置函數源代碼
對exe或者dll進行反編譯,以前寫程序是用的機器語言,0,1,1,0,後來採用了匯編寫,後來用匯編寫了個編譯器(就是把高級語言轉換成機器語言),於是有了c語言,後來用開始用c語言寫編譯器,有了c++,sql語言什麼的。比方說php的內置函數,(有的稱之為系統函數,保留函數)都是在解釋器了寫的,語言內置函數都是採用的英文本身的字義或者縮寫,比方說print就是列印的意思,function 就是函數的意思,只所以這樣,是為了便於人們理解,如果中國產生了自己的語言,那麼一定是這樣的:
列印 (變數a);
函數 測試(){
列印(變數x)
}。
很多的翻譯書籍都是只有枝蔓,而沒有大樹,有的翻譯錯誤,有的翻譯故作高深,不知所雲。翻譯最好是採用某個單詞本身的意義來翻譯,真實,通俗。
㈤ PHP FPM源代碼反芻品味之四:事件處理
FPM master 進程啟動後,會進入函數fpm_event_loop,無限循環.
處理事件.
master 進程所做的的事,總的來說就是兩類:
簡稱timer事件,需按時運行,主要有3個:
簡稱fd事件,需從文件句柄(file descriptor)讀取到指令後,依指令運行.
重復一下,unix 下一切IO, 皆文件,socket ,socketpair,pipe 都返迴文件句柄(fd) 用於通信.
主要的fd有:
對於timer事件,多個事件在事件軸上是依次排列的,只需反復檢查,到時運行.
對於fd事件,需監聽多個fd,需用到我們第二篇講的IO多路復用技術.
如果滿足事件條件,則處理事件內容.
FPM設計上,兩類事件使用同一個結構,並且事件觸發條件和事件處理邏輯放到同一個事件對象里(C語言對象就是結構體).
舉個例子, 打鈴下課,打鈴是觸發條件,下課是事件內容,兩個同時放到一個事件對象 ,這是一個很好的設計.
fd值: -1
flags值:FPM_EV_PERSIST
which值: FPM_EV_TIMEOUT
fd值: 獲取觸發指令的文件fd
flags值: FPM_EV_EDGE(fd事件底層的邊緣觸發標志,需系統支持)
which值: FPM_EV_READ
兩類事件分別放在兩個事件隊列
static struct fpm_event_queue_s *fpm_event_queue_timer = NULL;
static struct fpm_event_queue_s *fpm_event_queue_fd = NULL;
事件隊列的結構很常見,雙向隊列:
typedef struct fpm_event_queue_s {
struct fpm_event_queue_s *prev;
struct fpm_event_queue_s *next;
struct fpm_event_s *ev;
} fpm_event_queue;
4移除事件 (fpm_event_del -> fpm_event_queue_del)
簡單的出列操作:
static int fpm_event_queue_del(struct fpm_event_queue_s **queue, struct fpm_event_s *ev)
對於fd事件,需在底層事件輪詢機制里移除(如:epoll)
5,運行事件回調函數:
6, 底層事件輪詢模塊結構
不同的操作系統,支持不同的IO事件機制,linux 支持epoll,
windows支持select, freebsd 支持kqueue,這個結構統一操作介面
在函數fpm_event_init_main里 調用mole->init初始化
fpm 里對應的配置
master進程在fpm_event_loop函數里無限循環,處理定時任務和fd事件.
期間會在mole->wait阻塞片刻,對於epoll機制,就是epoll_wait.
㈥ 怎樣在php頁面里輸出php源代碼
PHP本身提供了幾個函數可以對源代碼進行格式化並輸出為HTML代碼,你可以把要輸出的代碼段或者代碼文件用這些函數處理一下,直接輸出為HTML即可。
例如:
show_source(__FILE__);
highlight_file(__FILE__);
//__FILE__可以替換成任意的PHP代碼文件,這些函數都會把代碼高亮格式化之後顯示在網頁上。