『壹』 php實現文件安全下載的代碼怎麼用
你可以建立一個函數如下:
function download($fileName
){
Header("content-type:application/octet-stream");
Header("content-disposition:attatchment;filename:".$fileName.".torrent");
if(file_exists($fileAdd) && $file=fopen($fileAdd,"r"))//判斷文件是否存在並打開
{
fread($file,filesize($fileAdd));//讀取文件內容並吐給瀏覽器
fclose($file);
}
}
注釋$fileName是文件名字,或者文件地址,最好寫文件地址,你那個fileAdd這個也是文件地址吧,可以協同一個。
我看見你後面加了後綴名,所以fileName轉成fileAdd需要添加後綴名
其實你最後的哪個讀取文件可以用一句話ok
就是readfile($fileName);
我寫的比較模糊,其實$fileName就是個文件地址。
『貳』 php下載官網
phpweb怎麼下載1、在瀏覽器中搜索PHP,進入php官網。
2、點擊Downloads選項,進入下載頁面。
3、選擇一個適合的PHP版本,然後點擊頁面中的Windowsdownloads。
4、點擊zip按鈕,再點擊下載按鈕即可。
如何在本地機上看php???准備工作首先要下載如下軟體,推薦到官網下載,如果你是像我一樣只是測試,那麼到skycn.com下載吧,這樣比較快。
Apache
最流行的HTTP伺服器軟體之一。快速、可靠、可通過簡單的API擴展,Perl/Python解釋器可被編譯到伺服器中,完全免費,完全源代碼開放。
我下載的是forWindows版本,目前最新版本是:2.0.54
PHP
PHP是一種HTML內嵌式的語言。而PHP獨特的語法混合了C、Java、Perl以及PHP式的新語法。它可以比CGI或者Perl更快速的執行動態網頁。
我下載的是forWindows版本,目前最新版本是:5.0.4
MySQL
是一個多線程的,結構化查詢語言(SQL)資料庫伺服器。SQL在世界上是最流行的資料庫語言。MySQL的執行性能非常高,運行速度非常快,並非常容易使用。
我下載的是forWindows版本,目前最新版本是:5.0.4Beta
phpMyAdmin
phpMyAdmin是一個用PHP編寫的,可以通過互聯網控制和操作MySQL。通過phpMyAdmin可以完全對資料庫進行操作。
我下載的是forWindows版本,目前最新版本是:2.6.2-pl1
安裝apache和PHP
下面是我的安裝記錄:
選擇80埠,將apache安裝在e:apache下。
配置apache里的httpd.conf文件(conf目錄下)
找到DocumentRootE:/apache/Apache2/htdocs將其改為WEB目錄E:/htdocs
找到DirectoryIndexindex.htmlindex.html.var在後面加入index.htmindex.phpdefault.phpdefault.html
選擇模塊化模式安裝
找到#LoadMolessl_molemoles/mod_ssl.so這行,在此行後加入一行
LoadMolephp5_molee:/php/php5apache2.dll
找到AddTypeapplication/x-gzip.gz.tgz這行,在此行後加入一行
AddTypeapplication/x-httpd-php.php
將php-5.0.4-Win32.zip里內容解壓到e:php里,找到php.ini-recommended,重命名為php.ini並拷貝到windows目錄下。
NTFS上記得給伺服器開PHP.ini的讀許可權。
查找extension_dir後面的改為e:/php/ext
查找WindowsExtensions,把下面有一排的;extension=php_***.dll的分號去掉,就是支持組件了。我把extension=php_gd2.dllextension=php_mbstring.dllextension=php_mysql.dll的分號去掉了。
php5默認不支持mysql了,所以要為他添加支持,除了extension=php_mysql.dll去分號之外,在php目錄里有個libmysql.dll文件,把它復制到系統的system32文件夾下,復制php.ini到windows目錄下。
此時PHP環境基本已經配置成功
在WEB根目錄里建一個名為test.php的文件內容如下
?echophpinfo();?
重新啟動apache服務,用瀏覽器打開
如果可以看到php配置輸出信息就成功了
安裝mysql
將mysql安裝到指定目錄,然後安裝程序會引導你一步步配置。不過奇怪的是最後任務欄沒有出現Mysql的圖標。
修改mysql資料庫的root密碼
用cmd進入命今行模式輸入如下命令:(注:d:mysql為mysql安裝目錄)
cdd:mysqlin
mysqladmin-uroot-ppassword123456
回車出現
Enterpassword:(注:這是叫你輸入原密碼.剛安裝時密碼為空,所以直接回車即可)
此時mysql中賬號root的密碼被改為123456安裝完畢
配置php.ini並測試mysql
找到extension_dir=./改為extension_dir=e:/php/ext
找到
;extension=php_mysql.dll
將''去掉改為
extension=php_mysql.dll
找到
;session.save_path=/tmp
將''去掉設置你保存session的目錄,如
session.save_path=e:/php/session_temp
重啟apache服務
在Web根目錄下建立testdb.php文件內容如下:
?php
$link=mysql_connect('localhost','root',');
if(!$link)echofail;
elseechosuccess;
mysql_close();
?
用瀏覽器打開如果輸出success就OK了
phpmyadmin的安裝配置
將phpMyAdmin-V2.6.2-pl1.zip解壓到WEB根目錄中去,重命名文件夾為phpmyadmin或其它
打開phpmyadmin目錄中的config.inc.php
找到
$cfg['Servers'][$i]['user']='root'
$cfg['Servers'][$i]['password']='
分別填上用戶名和密碼
linuxphp網站怎麼安裝
一、安裝Apache2.2.22
1、到官網下載
2、解壓
tar-zxvfhttpd-2.2.22.tar.gz
3、建立目標文件夾(注意以下所有操作都時在root用戶下執行的)
mkdir/usr/local/apache2
也就是說等下安裝的apache2要安裝到這個文件夾裡面
4、配置
回到原來解壓之後產生的文件夾
./configure--prefix=/usr/local/apache2--enable-mole=shared
要加上後面的參數,否則無法使用php,-enable-mole=shared表示Apache可以動態的載入模塊
這一步,出現了很多問題:
第一個錯誤為:
checkingforAPR...no
configure:error:APRnotfound.Pleasereadthedocumentation.
解決方法:
-UtilfromApacheAPR,unpacktheminto./srclib/aprand./srclib/apr-util(;forexample,theAPRdistributionmustbeunder./srclib/apr/)
thendo
./configure--with-included-apr
原文章地址:
另外一種解決方法為:
分別安裝APR和APR-util,安裝方法為:首先下載這兩個文件,然後解壓,進入解壓後目錄,然後把APR和APR-util分別安裝到/usr/local/文件夾的apr和apr-util文件夾下。APR的具體安裝方法為:
[root@localhost52lamp]#tar-zxvfapr-1.4.2.tar.gz//unzip-oapr-1.4.2.zip
[root@localhost52lamp]#cdapr-1.4.2
[[email protected]]#./configure--prefix=/usr/local/apr
[[email protected]]#make
[[email protected]]#makeinstall
安裝Apr-util在./confiure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr
其他步驟類似。
第二個錯誤為:noacceptableCcompilerfoundin$Path
直接運行yuminstallgcc,安裝Gcc即可
第三個問題為:pcre-configforlibpcrenotfound
解決方法就是下載prce安裝包,和APR類似,安裝到/usr/local/pcre文件夾下面即可。PS:fedora下安裝c++編譯器g++的命令為:yuminstallgcc-c++。
5、編譯
make
6、安裝
makeinstall
7、啟動,重啟和停止,先切換到安裝完成後的目錄/usr/local/apache2/bin
./apachectl-kstart
./apachectl-krestart
./apachectl-kstop
8、配置文件(滿足最基本的配置)
編輯/usr/local/apache2/conf/httpd.conf文件
找到:
AddTypeapplication/x-compress.Z
AddTypeapplication/x-gzip.gz.tgz
在後面添加:
AddTypeapplication/x-httpd-php.php(使Apcche支持PHP)
AddTypeapplication/x-httpd-php-source.php5
找到:
IfMoledir_mole
DirectoryIndexindex.html
/IfMole
添加:
IfMoledir_mole
DirectoryIndexindex.htmlindex.php
/IfMole
找到:
#ServerName
修改為:
ServerName127.0.0.1:80或者ServerNamelocalhost:80
記得要去掉前面的「#」
9、測試
在瀏覽器里輸入
如果出現ItWorks!說明成功。這是我的測試結果:O(∩_∩)O哈哈~
10、修改默認的Web站點目錄
默認的目錄為"/usr/local/apache2/htdocs",修改apache的配置文件httpd.conf,比如在新建一個/home/gyw/WebSite的目錄作為apache的站點目錄
找到DocumentRoot這一行修改為:DocumentRoot"/home/gyw/WebSite"
找到Directory這一行修改為:Directory"/home/gyw/WebSite"
測試:修改到文件夾出現錯誤:
「Youdon'thavepermissiontoaccess/index.htmlonthisserver.」
解決方法:
更改文件許可權;chmod755index.html
打開apache配置文件httpd.conf,找到這么一段:
Directory/
OptionsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
denyfromall
Satisfyall
/Directory
測試結果如下:
二、安裝PHP
1、下載
2、解壓
tar-zxvfphp-5.3.16.tar.gz
3、建立目標文件夾
mkdir/usr/local/php
也就是說等下安裝的php要安裝到這個文件夾裡面
4、配置
回到原來解壓後的文件夾
./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs
注意這里有一個-with-apxs2=/usr/local/apache/bin/apxs選項,其中apxs是在安裝Apache時產生的,apxs是一個為ApacheHTTP伺服器編譯和安裝擴展模塊的工具,使之可以用由mod_so提供的LoadMole指令在運行時載入到Apache伺服器中。我的理解是通過這個工具把PHP模塊動態載入到Apache中
出現錯誤:configure:error:xml2-confignotfound..
運行yuminstalllibxml2,然後再運行yuminstalllibxml2-devel安裝完畢後,重新運行上面的./configure命令。
5、編譯
make
6、測試編譯
maketest
7、安裝
makeinstall
8、配置文件
cp/usr/local/src/php-5.3.16/php.ini-development/usr/local/php/lib/php.ini
把原來位於源代碼裡面的php.ini-development拷貝到/usr/local/php/lib/php.ini下,並且重命名為php.ini
9.重啟apache
10、測試
在apache的htdocs下建立一個php文件test.php,裡面的內容如下:
?php
phpinfo();
?
然後在瀏覽器里輸入
如果出現php的相關配置,成功,如果什麼都沒有輸入,說明失敗,重新以上步驟或者查找原因
如果決定在安裝後改變配置選項,只需重復最後的三步configure,make,以及makeinstall,然後需要重新啟動Apache使新模塊生效。Apache不需要重新編譯。
測試結果如下圖:
三、安裝MySql
1、下載
到官網下載mysql-5.1.65.tar.gz(注意是源碼包)
2、解壓
tar-zxvfmysql-5.1.65.tar.gz
3、建立目標文件夾
mkdir/usr/local/mysql
也就是說等下安裝的mysql要安裝到這個文件夾裡面
4、配置
./configure--prefix=/usr/local/mysql/
在./configure時出現錯誤:error:Nocurses/termcaplibraryfound
下載安裝相應軟體包
yumlist|grepncurses
yum-yinstallncurses-devel
yuminstallncurses-devel
5、編譯
make
6、安裝
makeinstall
7、啟動
MySQL服務並不會自動啟動,還需要先初始化MySQL資料庫,操作如下:
cd/usr/local/mysql/bin
sudo./mysql_install_db--user=root
注意,這里最後的root是指可以操作資料庫的用戶,可以是當前用戶,也可以新建用戶,與linux上的root用戶是兩回事,可以自己取一個名字
./mysqld_safe--user=root這條命令負責啟動mysql服務的守護進程,此外最後的時必須的,因為希望守護進程在後台運行
這里的root就是剛才的那個
8、為根用戶創建密碼
./mysqladmin-urootpassword『123456』
如果root已經設置過密碼,採用如下方法
./mysqladmin-urootpasswordoldpass『123456』
9、測試
mysql-uroot-p
會提示輸入密碼,就用剛才設置的密碼
123456
如果出現mysql,說明連接成功了,下面通過命令創建一個資料庫、建一個表,增加一條記錄,為後面的測試准備
mysqlcreatedatabasegywtest;
mysqlusegywtest;
mysqlcreatetablestudent(idint(4)notnullprimarykeyauto_increment,stunamechar(20));
mysqlinsertintostudent(stuname)values('Tom');
注意每條命令後面有個分號,如果上面的都成功,後面就可以用這個測試。
四、將PHP與MySql結合起來
1、重新配置PHP,改變配置選項,只需重復PHP安裝時的最後的三步configure,make,以及makeinstall,然後需要重新啟動Apache使新模塊生效,Apache不需要重新編譯。
2、配置
./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs--with-mysqli=/usr/local/mysql/bin/mysql_config注意mysql_config的路徑
3、編譯make
4、安裝makeinstalle
5、測試寫一個頁面test.php,放在apache的web目錄下,測試上面用命令創建的資料庫
?php
$mysqli=newmysqli();
$mysqli-connect('localhost','root',','gywtest');
//創建查詢
$sqlstr='select*fromstudent'
//發送查詢給MySql
$result=$mysqli-query($sqlstr);
while($row=$result-fetch_object())
{
$name=$row-stuname;
echo$name;
}
?
Fatalerror:Class'mysqli'notfoundin/home/lufangtao/Project/DB.phponline3
解決方法:
/usr/local/php/bin/phpize這里回車運行
出錯:
Cannotfindconfig.m4.
Makesurethatyourun'./phpize'
解決方法:
PHP源碼包文件夾下的EXT文件夾就是放置著目前版本的可用擴展,CD進去看看都有哪些你需要的?應該看到mysqli文件夾了吧~~~
在當前目錄下執行phpize
[root@localhostmysqli]#/usr/local/php/bin/phpize
Configuringfor:
PHPApiVersion:20090626
ZendModeuleApiNo:20090626
ZendExtensionApiNo:220090626
Cannotfindautoconf.
$PHP_AUTOCONFenvironmentvariable.Then,rerunthisscript.
解決方法:
yuminstallautoconf再次運行上面的命令即可。
[root@localhostmysqli]#./configure–prefix=/opt/mysqli–with-php-config=/opt/php/bin/php-config–with-mysqli=/opt/mysql/bin/mysql_config
[root@localhostmysqli]#make
[root@localhostmysqli]#makeinstall
安裝完成後會有提示擴展所在目錄路徑,如:
/opt/php/lib/php/extensions/no-debug-zts-20090626php
所需的mysqli.so便會在此目錄下,接下來修改/opt/php/etc/下的php.ini文件,加入mysqli擴展,即加入如下一行:
extension=/opt/php/lib/php/extensions/no-debug-zts-20090626/mysqli.so
這里還是回出現錯誤:
參考博客
解決不用擴展連接MySQL的方法。
最終
『叄』 求一個PHP跳轉代碼很簡單
這里提供了一個簡單的PHP代碼示例,用於隨機跳轉到預設的網站。具體代碼如下:
$JumpURL = array("www..com", "www.google.com", "www.qq.com"); 這行代碼定義了一個數組,包含三個跳轉目標網站的URL。
$randNum = rand(0, 2); 這行代碼生成一個0到2之間的隨機數,用於選擇數組中的一個元素。
header("Location: http://$JumpURL[$randNum] "); 最後這行代碼執行跳轉,根據生成的隨機數選擇數組中的一個URL,並進行跳轉。
這個簡單的PHP代碼能夠實現隨機跳轉到預設的網站,我自己嘗試了一下,確實可以正常工作,每次運行都會隨機打開一個網站。
需要注意的是,在使用這個代碼時,確保目標URL是正確的,並且伺服器允許執行HTTP頭部重定向。此外,如果需要跳轉到HTTPS網站,記得將URL中的「http://」改為「https://」。當然,這個代碼也可以根據需要調整目標網站的數量和內容。
簡單來說,這段代碼通過生成隨機數來選擇數組中的一個URL,然後通過HTTP頭部重定向實現跳轉。這種方式可以應用於各種場景,例如廣告推廣、網站測試等。
如果你希望實現更復雜的功能,比如根據用戶偏好選擇跳轉目標,可以考慮在此基礎上進行擴展。
總之,這是一個非常實用且簡單的PHP跳轉代碼示例,希望能夠對你有所幫助。
『肆』 求php能用的下載文件代碼,盡量快
php 下載主要就三點吧
1。得到文件$file
2。書寫固定的html頭部
header("")
比如
header("Content-Type:text/plain");
header("Accept-Ranges:bytes");
header("Accept-Length:".filesize($file));
header("Content-Disposition: attachment;filename=".basename($file));
3。打開文件並讀取
比如
$fp = fopen($filename, 'rb');
@flock($fp,2);
$downloadfile = fread($fp, filesize($file));
@fclose($fp);
echo $downloadfile;
一般這樣就可以了八
『伍』 我用PHP測試文件下載功能,但是下載下來的圖片卻總是損壞的,代碼如下:
<?php
header("Content-type:image/pjpeg");
echofile_get_contents("./201404/1.jpg");
?>
『陸』 PHP中怎麼用代碼實現文件下載
CI框架:
前台:a.php <a href="download/export">download</a>
後台:download.php
function export(){
//把js,css的路徑文件名填充下面的$url和$fname就可以了
//至於html文件,先在後台生成一個html文件,然後下載就可以了
$fname=date('YmdHis').'.xls';
$url='./xls/'.$fname;
$this->excel_m->write($url);
$file = fopen($url,"r"); // 打開文件
// 輸入文件標簽
header('Content-Encoding: utf-8');
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: ".filesize($url));
header('Content-Transfer-Encoding: binary' );
header("Content-Disposition: attachment; filename=" .$fname); //以真實文件名提供給瀏覽器下載
header('Pragma: no-cache');
header('Expires: 0');
//輸出文件內容
echo fread($file,filesize($url));
fclose($file);
}