mimetypephp
vi /etc/ld.so.conf.d/local.conf //創建local.conf
/usr/local/lib //添加輸入
ldconfig -v //執行命令
❷ php獲取文件mime類型的幾種方法
MIME類型就是設定某種擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程序來打開。多用於指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。
php獲取文件mime類型有以下幾種方法:
1、mime_content_type()函數判斷獲取mime類型
mime_content_type返回指定文件的MIME類型,
用法:echomime_content_type('php.gif') .
"
";echomime_content_type('test.php');輸出:image/giftext/plain但是php 5.3.0已經將該函數廢棄。如果仍想使用此函數,那麼可以對php進行配置啟用magic_mime擴展。
2、php Fileinfo 獲取文件MIME類型(finfo_open)
PHP官方推薦mime_content_type()的替代函數是Fileinfo函數。PHP
5.3.0+已經默認支持Fileinfo函數(fileinfo
support-enabled),不必進行任何配置即可使用finfo_open()判斷獲取文件MIME類型。
用法:$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);
3、image_type_to_mime_type()獲取圖片MIME類型
注意:需要在php.ini中配置打開php_mbstring.dll(Windows需要)和extension=php_exif.dll。
4、php上傳文件獲取MIME類型
如果使用php上傳文件,檢測上傳文件的MIME類型,則可以使用全局變數$_FILES['uploadfile']['type'],由客戶端的瀏覽器檢測獲取文件MIME類型。
❸ PHP如何判斷是否是MP3文件
php判斷是否是mp3其實就是判斷文件的MIME類型,其中mp3的MIME類型為 audio/mpeg
以下幾種方法可以獲得文件的MIME類型,得到文件類型後就可以進行判斷了:
1、mime_content_type()函數判斷獲取文件類型,然後判斷是否是mp3
mime_content_type返回指定文件的MIME類型,用法:
echomime_content_type('xxx.mp3')."n";
echomime_content_type('test.php');
//輸出:
audio/mpeg
text/plain
但是php 5.3.0已經將該函數廢棄。如果仍想使用此函數,那麼可以對php進行配置啟用magic_mime擴展。
2、php Fileinfo 獲取文件類型(finfo_open)
PHP官方推薦mime_content_type()的替代函數是Fileinfo函數。PHP 5.3.0+已經默認支持Fileinfo函數(fileinfo support-enabled),不必進行任何配置即可使用finfo_open()判斷獲取文件MIME類型。
用法:
$finfo=finfo_open(FILEINFO_MIME);
$mimetype=finfo_file($finfo,$filename);
finfo_close($finfo);
3、php獲取上傳文件類型
如果使用php上傳文件,檢測上傳文件的MIME類型,則可以使用全局變數$_FILES['uploadfile']['type'],由客戶端的瀏覽器檢測獲取文件MIME類型。
得到MIME類型後,再判斷是不是audio/mpeg 即可
❹ php獲取post數據
方法1、最常見的方法是:$_post['fieldname'];
說明:只能接收content-type:
application/x-www-form-urlencoded提交的數據
解釋:也就是表單post過來的數據
方法2、file_get_contents("php://input");
說明:
允許讀取
post
的原始數據。
和
$http_raw_post_data
比起來,它給內存帶來的壓力較小,並且不需要任何特殊的
php.ini
設置。
php://input
不能用於
enctype="multipart/form-data"。
解釋:
對於未指定
content-type
的post數據,則可以使用file_get_contents(「php://input」);來獲取原始數據。
事實上,用php接收post的任何數據都可以使用本方法。而不用考慮content-type,包括二進制文件流也可以。
所以用方法二是最保險的方法
方法3、$globals['http_raw_post_data'];
說明:
總是產生
$http_raw_post_data
變數包含有原始的
post
數據。
此變數僅在碰到未識別
mime
類型的數據時產生。
$http_raw_post_data
對於
enctype="multipart/form-data"
表單數據不可用
如果post過來的數據不是php能夠識別的,可以用
$globals['http_raw_post_data']來接收,
比如
text/xml
或者
soap
等等
解釋:
$globals['http_raw_post_data']存放的是post過來的原始數據。
$_post或$_request存放的是
php以key=>value的形式格式化以後的數據。
但$globals['http_raw_post_data']中是否保存post過來的數據取決於centent-type的設置,即post數據時
必須顯式示指明content-type:
application/x-www-form-urlencoded,post的數據才會存放到
$globals['http_raw_post_data']中
❺ php文件上傳RAR的mime類型
首先要建立一個文件夾和兩個文件,具體如下:
File ——————文件夾,用於存放上傳的文件。
choose.htm ——————htm文件,用於選擇上傳的文件。
upload.php ——————php文件,用於處理上傳的文件。
第一步:建立 File 文件夾。
第二步:建立 choose.htm 文件,代碼如下:
____________________________________________________________________________________________________________
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FLIE_SIZE" value="1000000" />
上傳此文件:
<input name="userfile" type="file" id="userfile" />
<input type="submit" name="Submit" value="上傳" />
</form>
____________________________________________________________________________________________________________
第三步:建立 upload.php 文件,代碼如下:
____________________________________________________________________________________________________________
<?php
//上傳文件錯誤判定
if($_FILES['userfile']['error']>0)
{
echo '錯誤:';
switch($_FILES['userfile']['error'])
{
case 1: echo '文件尺寸超過允許的最大上傳限度!'; break;
case 2: echo '文件尺寸超過允許的最大上傳限度!'; break;
case 3: echo '只有部分文件被上傳!'; break;
case 4: echo '沒有任何文件被上傳!'; break;
}
exit;
}
//上傳文件格式判定
if($_FILES['userfile']['type'] !='text/plain')
{
echo '錯誤:非法文件格式!';
exit;
}
//設置文件保存路徑
$upfile = './File/' . $_FILES['userfile']['name'];
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
if(!move_uploaded_file($_FILES['userfile']['tmp_name'],$upfile))
{
echo '錯誤:沒有將文件移動到指定目錄!';
exit;
}
}
else
{
echo '錯誤:可能文件上傳被攻擊!文件名:';
echo $_FILES['userfile']['name'];
}
echo '文件上傳成功!';
//格式化上傳的文件
$fp = fopen($upfile,'r');
$contents = fread($fp,filesize($upfile));
fclose($fp);
$contents = strip_tags($contents);
$fp = fopen($upfile,'w');
fwrite($fp,$contents);
fclose($fp);
//顯示上傳文件內容
echo '上傳文件的內容為:';
echo $contents;
?>
____________________________________________________________________________________________________________
測試一下:
1、建立一個 123.txt 文件,裡面輸入一些純文本字元,比如 abc,上傳成功!
2、我們再來試看其他後綴名,如.exe,.php,.htm之類的,只要非txt,就將導致失敗!
3、把任意一個大於1M的文件名改為123.txt並上傳,我們將發現超過限制大小的文件將導致上傳失敗!
4、將123.txt的內容改掉,刪除所有內容,輸入 <html>HTML code</html>,保存並上傳,我們會發現上傳失敗!
5、將123.txt的內容改掉,刪除所有內容,輸入 <?php echo'PHP code'; ?>保存並上傳,我們會發現 File 文件夾中有一個0位元組的,沒有任何內容的123.txt文件!
❻ PHP圖像處理函數有哪些
我在網上找了半天,發現這些都無法實現對它的認識,於是我偶然間找到了相關的資料方面的書;
那就是PHP 手冊,表在網上找這些沒用的東西了,全是些皮毛介紹,誤人子弟;
請點擊這里:網頁鏈接下載相關的手冊,或者在網上查找PHP相關的中文版的手冊;
又全面又仔細,不需要在網上亂查了,根本就是浪費時間,誤入歧途.
例子 1. 用 PHP 創建 PNG 圖像
<?phpheader("Content-type: image/png");
$string = $_GET['text'];
$im= imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im,
220, 210, 60);
$px= (imagesx($im) - 7.5
* strlen($string)) /
2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);
?>
本例應該在一個具有類似:<img
src="button.php?text=text"> 標簽的頁面中被調用。上述的 button.php 腳本會取得 "text"
字元串將其覆蓋在原圖上(本例中的
"images/button1.png")並輸出作為結果的圖像。用此方法可以很方便地修改按鈕上的文字從而避免了每次都要新畫一個按鈕的圖像。用此方法就可以動態生成了。
目錄
exif_imagetype--判斷一個圖像的類型
exif_read_data-- 從 JPEG 或 TIFF 文件中讀取 EXIF 頭信息,這樣就可以讀取數碼相機產生的元數據
exif_thumbnail--取得嵌入在 TIFF 或
JPEG 圖像中的縮略圖gd_info--取得當前安裝的 GD 庫的信息
getimagesize--取得圖像大小
image_type_to_mime_type-- 取得
getimagesize,exif_read_data,exif_thumbnail,exif_imagetype 所返回的圖像類型的 MIME 類型image2wbmp--以 WBMP 格式將圖像輸出到瀏覽器或文件
imagealphablending--設定圖像的混色模式
imageantialias--是否使用 antialias
功能imagearc--畫橢圓弧
imagechar--水平地畫一個字元
imagecharup--垂直地畫一個字元
imagecolorallocate--為一幅圖像分配顏色
imagecolorallocatealpha--為一幅圖像分配顏色
+ alphaimagecolorat--取得某像素的顏色索引值
imagecolorclosest--取得與指定的顏色最接近的顏色的索引值
imagecolorclosestalpha--取得與指定的顏色
+ alpha 最接近的顏色imagecolorclosesthwb--
取得與給定顏色最接近的色度的黑白色的索引imagecolordeallocate--取消圖像顏色的分配
imagecolorexact--取得指定顏色的索引值
imagecolorexactalpha--取得指定的顏色 +
alpha 的索引值imagecolormatch--
使一個圖像中調色板版本的顏色與真彩色版本更能匹配imagecolorresolve--
取得指定顏色的索引值或有可能得到的最接近的替代值imagecolorresolvealpha--
取得指定顏色 + alpha 的索引值或有可能得到的最接近的替代值imagecolorset--給指定調色板索引設定顏色
imagecolorsforindex--取得某索引的顏色
imagecolorstotal--取得一幅圖像的調色板中顏色的數目
imagecolortransparent--將某個顏色定義為透明色
image--拷貝圖像的一部分
imagemerge--拷貝並合並圖像的一部分
imagemergegray--用灰度拷貝並合並圖像的一部分
imageresampled--重采樣拷貝部分圖像並調整大小
imageresized--拷貝部分圖像並調整大小
imagecreate--新建一個基於調色板的圖像
imagecreatefromgd2--從 GD2
文件或 URL 新建一圖像imagecreatefromgd2part--從給定的
GD2 文件或 URL 中的部分新建一圖像imagecreatefromgd--從 GD 文件或
URL 新建一圖像imagecreatefromgif--從 GIF
文件或 URL 新建一圖像imagecreatefromjpeg--從
JPEG 文件或 URL 新建一圖像imagecreatefrompng--從 PNG
文件或 URL 新建一圖像imagecreatefromstring--從字元串中的圖像流新建一圖像
imagecreatefromwbmp--從
WBMP 文件或 URL 新建一圖像imagecreatefromxbm--從 XBM
文件或 URL 新建一圖像imagecreatefromxpm--從 XPM
文件或 URL 新建一圖像imagecreatetruecolor--新建一個真彩色圖像
imagedashedline--畫一虛線
imagedestroy--銷毀一圖像
imageellipse--畫一個橢圓
imagefill--區域填充
imagefilledarc--畫一橢圓弧且填充
imagefilledellipse--畫一橢圓並填充
imagefilledpolygon--畫一多邊形並填充
imagefilledrectangle--畫一矩形並填充
imagefilltoborder--區域填充到指定顏色的邊界為止
imagefontheight--取得字體高度
imagefontwidth--取得字體寬度
imageftbbox--取得使用了 FreeType 2
字體的文本的范圍imagefttext--使用 FreeType 2
字體將文本寫入圖像imagegammacorrect--對 GD 圖像應用
gamma 修正imagegd2--輸出 GD2 圖像
imagegd--將 GD 圖像輸出到瀏覽器或文件
imagegif--以 GIF 格式將圖像輸出到瀏覽器或文件
imageinterlace--激活或禁止隔行掃描
imageistruecolor--檢查圖像是否為真彩色圖像
imagejpeg--以 JPEG 格式將圖像輸出到瀏覽器或文件
imagelayereffect-- Set the
alpha blending flag to use the bundled libgd layering effectsimageline--畫一條直線
imageloadfont--載入一新字體
imagepalette--將調色板從一幅圖像拷貝到另一幅
imagepng--以 PNG 格式將圖像輸出到瀏覽器或文件
imagepolygon--畫一個多邊形
imagepsbbox--取得使用 PostScript Type1
字體的文本的范圍imagepsfont--
拷貝一個已載入的字體以備更改imagepsencodefont--改變字體中的字元編碼矢量
imagepsextendfont--擴充或壓縮字體
imagepsfreefont--釋放一個
PostScript Type 1 字體所佔用的內存imagepsloadfont--從文件中載入一個
PostScript Type 1 字體imagepsslantfont--傾斜某字體
imagepstext--用 PostScript Type1
字體把文本字元串畫在圖像上imagerectangle--畫一個矩形
imagerotate--用給定角度旋轉圖像
imagesavealpha-- 設置標記以在保存 PNG
圖像時保存完整的 alpha 通道信息(與單一透明色相反)imagesetbrush--設定畫線用的畫筆圖像
imagesetpixel--畫一個單一像素
imagesetstyle--設定畫線的風格
imagesetthickness--設定畫線的寬度
imagesettile--設定用於填充的貼圖
imagestring--水平地畫一行字元串
imagestringup--垂直地畫一行字元串
imagesx--取得圖像寬度
imagesy--取得圖像高度
imagetruecolortopalette--將真彩色圖像轉換為調色板圖像
imagettfbbox--取得使用 TrueType
字體的文本的范圍imagettftext--用 TrueType
字體向圖像寫入文本imagetypes--返回當前 PHP 版本所支持的圖像類型
imagewbmp--以 WBMP 格式將圖像輸出到瀏覽器或文件
iptcembed--將二進制 IPTC 數據嵌入到一幅 JPEG
圖像中iptcparse-- 將二進制 IPTC http://www.iptc.org/ 塊解析為單個標記
jpeg2wbmp--將 JPEG 圖像文件轉換為 WBMP 圖像文件
png2wbmp--將 PNG 圖像文件轉換為 WBMP 圖像文件
read_exif_data--exif_read_data() 的別名
❼ Content-Encoding設置為utf-8和application/json的區別
不是同一個東西, mime-type,encoding是content-type兩個組成部分
前者代表請求的資源是什麼類型的資源:文本,還是圖片,還是應用程序等等
application/json代表請求的資源是:應用程序類型下的,json類型(某類型/子類型)
類似的,也會遇到 img/bmp , text/plain
伺服器和瀏覽器會根據不同的mime類型來解析請求,並做出相應回應:比如伺服器收到.php的請求,如果設置正確,一般對應是 application類型,伺服器就會用相應的用處理程序映射去執行這個php,比如客戶端收到application/json的響應,就知道返回來的是一個json字元串,比如收到img/jpg,就知道是個jpg圖片。有的時候打開一個網頁,會發現它顯示的是網頁源代碼,而不是一個正常的頁面,這種情況多半就是伺服器上mime的問題,可能是設置錯了,也可能是沒有添加相應的處理程序映射。
encoding代表編碼,客戶端和伺服器通信的時候,所有數據都會變成二進制來傳輸,碰到英文字元數字這些還好,如果是漢字,不同編碼下它的二進制內容是完全不一樣的,所以必須兩邊統一編碼才可以正常通信。碰到100次網頁亂碼,其中至少有95次是因為編碼不一致造成的,所以試著切換一下不同的編碼,多半會發現亂碼變正常
❽ 求助~~~~
IIS應該不支持PHP的,你要下些東西修改你的IIS,具體你可以自己查下~~~
另外你可以在你機子上裝PHP+apache+MySQL+ZendOptimizer的一套系統,我的是裝在windows XP上的,請參考下面的內容~~~~