㈠ php如何獲取文件大小php如何獲取文件大小和內容
php如何獲取文件大小
該函數通過頭信息獲取遠程文件大小,代碼如下:if($FP=@fsockopen($URL[主持人],空($URL[港口])?80美元:網址[港口],$error)){
fputs($FP,路徑])?/:$URL[路徑])."HTTP/1.1r
fputs($FP,r
而(!feof($fp)){
$tmp=fgets($FP);
if(trim($tmp)==){
打破;
}elseif(preg_match(/Content-Length:(。*)/si,$tmp,$arr)){
returntrim($arr[1]);
}
}
返回null
}否則{
返回null
}
}
?/Article/uploadfiles/201001/20100104122349734.gif)
這個函數可以很好的獲取遠程文件的大小,無論遠程文件有多大,採集速度都絲毫不受影響。
php網站通過上傳附件上傳視音頻時提示文件大小超限,已修改過post_max_size和upload_max_filesize?
可能代碼中就限制了上傳文件大小,這個需要你去改代碼。
先找到這段代碼函數,看看有沒有限制上傳大小。
如何通過配置php文件限制上傳文件的大小?
在網站開發的過程中,為了確保能夠充分利用伺服器的空間,在開發上傳功能時,必須對上傳文件的大小進行控制。
那麼我們如何進行對上傳文件的大小進行控制呢?控制文件的大小可以從兩個方面入手:第一個是在PHP的配置文件php.ini中對上傳文件進行控制,如果上傳文件超過它指定的范圍,那麼執行上傳就會識別。第二個是在PHP配置文件允許的范圍內,在程序中對上傳文件的大小進行控制!一:通過配置文件控制上傳文件PHP中通過php.ini文件對上傳文件進行控制,包括是否支持上傳,上傳文件的臨時文件目錄,上傳文件的大小,指令執行時間,指令分配的內存空間。在php.ini中,定義FileUploads項,完成對上傳相關選項的設置。上傳相關選項的含義如下:file_uploads:如果值是no,說明伺服器支持上傳文件,如果為off,那麼則不支持。一般默認是支持的,這個不用修改!upload_tmp_dri:上傳文件臨時目錄。文件被成功上傳之前,文件首先存放到伺服器端的臨時目錄中。多數使用系統默認目錄,但是也可以自行設置!upload_max_filesize:伺服器允許上傳文件的最大值,以MB為單位,系統默認為2MB,如果網站需要上傳超過2MB的數據,那麼就要修改這個值!上述是php.ini中File_Uploads項中與上述相關參數設置說明,除了File_Uploads項中的內容外,在php.ini中還有其他幾個選項會影響到文件的上傳~max_execution_time:PHP中一個指令所能執行的最大時間,單位為秒。該選項在上傳超大文件時必須要修改,否則即使上傳文件在伺服器允許的范圍內,但是若超過了指令所能執行的最大時間,仍然無法實現上傳~memory_limit:PHP中一個指令所分配的內存空間,單位是MB。它的大小同樣會影響得到超大文件的上傳!二:在程序中控制上傳文件在客戶端控制上傳文件應用的是form表單中的enctype和method屬性以及隱藏域MAX_FILE_SIZE。enctype=「multipart/form-data」:指定表單編碼數據方式。method=「post」:指定數據的傳輸方式。:通過隱藏域控制上傳文件的大小(單位為位元組),該值不能超過php.ini配置文件中upload_max_filesize選項設置的值,它不能喝完全控制上傳文件的大小。只是可以避免一些不必要的麻煩。技巧:在應用隱藏域控制文件上傳大小時,必須將其放置在文件域之前,否則是不能發揮作用的!ps怎麼把圖片保存為2m?
ps把圖片保存為2m的方法步驟
1.使用Phptoshop打開圖片。
2.點擊圖像-圖像大小。
3.設置寬度和高度,點擊確定。
4.點擊文件-另存為,設置保存路徑,點擊保存。
5.在指定路徑查看圖片。
excel表格文件容量太大怎麼解決?
1、選中表格數據之後的一行數據。
2、按「Ctrl+Shift+↓」(下箭頭),選中所有的空白單元格,excel2003有65535行數據,excel2007及以上的版本都有10萬行數據。3、右鍵一下,點擊「刪除」。4、最後點擊保存按鈕,保存修改。5、現在就會發現表格就只剩幾十kb了。PHP文件是什麼文件?怎麼打開?
以php後綴的文件,是php腳本文件。php是一種創建動態交互性站點的強有力的伺服器端腳本語言。如果要編輯或者打開的話,下載相應的編輯器即可。例如:editplus,notepad++,zendstudio等等。
㈡ PHP 中如何在同一個文件中寫入而不覆蓋以前寫的內容
以a方式打開文件可以在文件的末尾寫入內容,例如下面的代碼在文件的a.txt的末尾添加123:
<?php
$fp=fopem("a.txt","a");
fputs($fp,"123");
fclose($fp);
?>
其它打開方式的說明:
'r' 只讀方式打開,將文件指針指向文件頭。
'r+' 讀寫方式打開,將文件指針指向文件頭。
'w' 寫入方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
'w+' 讀寫方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
'a' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
'a+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
'x' 創建並以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。這和給 底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以後的版本所支持,僅能用於本地文件。
'x+' 創建並以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。這和給 底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以後的版本所支持,僅能用於本地文件。
㈢ 萬網m3空間我裝wordpress程序,PHP函數fsockopen可以關閉嗎
既然樓主只是使用wordpress建立普通的博客站點,個人意見,這個函數關閉比較好,因為你製作的wordpress基本上是用不到這個函數的。而且此函數作為PHP製作人員,一般情況下,我們還是不使用的,倒不是說此函數沒用。
這個函數具體的功能如下(是我復制網路的)
【目前這個函數提供二個 Socket 資料流界面,分別為 Internet 用的 AF_INET 及 Unix 用的 AF_UNIX。
當在 Internet 情形下使用時,參數 hostname 及 port 分別代表網址及埠號。在 UNIX 情形可做 IPC,hostname 參數表示到 socket 的路徑,port 配置為 0。
可省略的 timeout 選項表示多久沒有連上就中斷。
在使用本函數之後會返迴文件指針,供文件函數使用,包括 fgets()、fgetss()、fputs()、fclose() 與 feof()。參數 errno 及 errstr 也是可省略的,主要當做錯誤處理使用。
使用本函數,會使用擱置模式 (blocking mode) 處理,可用 set_socket_blocking() 轉換成無擱置模式。】
㈣ php 怎麼調用列印機的控制命令
ESC使用\033表示,LF為\012,CR為\015
例如釋放紙的ESC q使用下面的命令輸出:
fputs($prn,"\033q");
fputs把內容發送給第一句,或者使用其它函數。
最後說明,上面的033、012、015是八進制
㈤ 如何通過php連接遠程主機並操作
一、最佳方案是在77機器上安裝apache和php
二、可以通過管道控制使用telnet登錄77號機執行命令並獲取結果,ssh連接本人沒有做過,telnet方法如下:
$f=fopen("telnet://192.168.0.77","rw");
$s=fgets($fp);
fputs($fp,"root");
$s=fgets($fp);
fputs($fp,"pass");
$s=fgets($fp);
fputs($fp,"df -h");
while(!feof($fp)){
$fp=fgets($fp);
echo $s;
}
fclose($fp);
手機輸入真累~~~
㈥ 如何新建一個php項目
php項目開發過程中,常常需要自動創建一些文件,如生成靜態html,生成php緩存文件,生成txt文件等等。下面就分享一下如何利用php程序創建文件,並向文件中寫入內容。
一個項目中,可能不止一次需要生成文件,因此我們可以定義一個函數,當需要創建文件時再來調用這個函數,即可。
步驟一、定義函數writefile,用於以寫的方式打開一個文件,文件不存在時自動創建,並向文件寫入內容,代碼如下。
01 <?php
02
03 function writefile($fname,$str){
04
05 $fp=fopen($fname,"w");
06
07 fputs($fp,$str);
08
09 fclose($fp);
10
11 }
12
13 ?>
步驟二、函數的使用。如創建test.txt文件,並寫入內容「abc」,代碼如下:
1 <?php
2
3 $filename='test.txt';
4
5 $str='abc';
6
7 writefile($filename,$str);
8
9 ?>
通過上述兩個步驟的操作,即可實現php創建文件的功能。
㈦ PHP fputs說明
在PHP中,fputs是一個強大的函數,它用於向文件指針file中寫入字元串。與fwrite()類似,fputs的主要任務是將指定的字元串內容寫入文件,但它的操作方式稍有不同。
與fwrite()不同,fputs並不接受長度參數,而是直接將整個字元串一次性寫入。這意味著你不需要預先知道要寫入多少位元組,fputs會自動處理直到字元串結束或者達到文件的當前寫入位置。一旦字元串寫入完成,函數會停止,返回已寫入的字元數。如果在寫入過程中遇到任何錯誤,fputs將返回false,以指示寫入失敗。
總的來說,fputs提供了一種簡潔的方式來將數據寫入文件,尤其適合於需要一次性寫入大量數據的情況。它的返回值可以用於檢測寫入操作是否成功,這對於錯誤處理和控製程序流程非常有用。在PHP的文件操作中,fputs是不可或缺的一個工具。
㈧ 用PHP發送電子郵件的方法
<?
/*
* 郵件發送類
*/
class smail {
//您的SMTP 伺服器供應商,可以是域名或IP地址
var $smtp = "";
//SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證,如不清楚請與你的smtp 服務商聯系。
var $check = 1;
//您的email帳號名稱
var $username = "";
//您的email密碼
var $password = "";
//此email 必需是發信伺服器上的email
var $s_from = "";
/*
* 功能:發信初始化設置
* $from 你的發信伺服器上的郵箱
* $password 你的郵箱密碼
* $smtp 您的SMTP 伺服器供應商,可以是域名或IP地址
* $check SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證
*/
function smail ( $from, $password, $smtp, $check = 1 ) {
if( preg_match("/^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]+[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{2,3}/", $from ) ) {
$this->username = substr( $from, 0, strpos( $from , "@" ) );
$this->password = $password;
$this->smtp = $smtp ? $smtp : $this->smtp;
$this->check = $check;
$this->s_from = $from;
}
}
/*
* 功能:發送郵件
* $to 目標郵箱
* $from 來源郵箱
* $subject 郵件標題
* $message 郵件內容
*/
function send ( $to, $from, $subject, $message ) {
//連接伺服器
$fp = fsockopen ( $this->smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "聯接伺服器失敗".__LINE__;
set_socket_blocking($fp, true );
$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "錯誤信息1:$lastmessage".__LINE__;
//HELO
$yourname = "YOURNAME";
if($this->check == "1") $lastact="EHLO ".$yourname."\r\n";
else $lastact="HELO ".$yourname."\r\n";
fputs($fp, $lastact);
$lastmessage == fgets($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "錯誤信息2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}
//身份驗證
if ($this->check=="1") {
//驗證開始
$lastact="AUTH LOGIN"."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息3:$lastmessage".__LINE__;
//用戶姓名
$lastact=base64_encode($this->username)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息4:$lastmessage".__LINE__;
//用戶密碼
$lastact=base64_encode($this->password)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != "235") return "錯誤信息5:$lastmessage".__LINE__;
}
//FROM:
$lastact="MAIL FROM: <". $this->s_from . ">\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息6:$lastmessage".__LINE__;
//TO:
$lastact="RCPT TO: <". $to ."> \r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息7:$lastmessage".__LINE__;
//DATA
$lastact="DATA\r\n";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "錯誤信息8:$lastmessage".__LINE__;
//處理Subject頭
$head="Subject: $subject\r\n";
$message = $head."\r\n".$message;
//處理From頭
$head="From: $from\r\n";
$message = $head.$message;
//處理To頭
$head="To: $to\r\n";
$message = $head.$message;
//加上結束串
$message .= "\r\n.\r\n";
//發送信息
fputs($fp, $message);
$lastact="QUIT\r\n";
fputs($fp,$lastace);
fclose($fp);
return 0;
}
}
/*發送示例
$sm = new smail( "用戶名@163.com", "密碼", "smtp.163.com" );
$end = $sm->send( "目標郵箱", "來源郵箱", "這是標題", "這是郵件內容" );
if( $end ) echo $end;
else echo "發送成功!";
*/
?>