『壹』 用php如何獲取遠程的xls表格文件地址,並將它下載到本地
寫段偽代碼給你:
//先獲取遠程網頁的源代碼
$html=file_get_contents(http://mp3..com/歌曲播放頁.html);
//用正則表達式分析源代碼中的資源鏈接
$link=preg_match_all(正則)...
//讀取資源文件
$bin=file_get_contents(http://mp3..com/時間都去哪了.mp3);
//保存資源文件到本地
$fp=fopen(時間都去哪了.mp3,wb)
$fp.writh($bin);
$fp.close();
先說好,不要讓我寫完整的源代碼,因為這里還涉及一些細節,比如說,你才提供的 xls ,就是需要登錄的,那麼你還要實現模擬登錄。
有些網站的資源鏈接有各種限制,需要你慢慢去深入。
『貳』 如何讓phpexcel生成的excel文件打開時需要密碼
excel 文件--》信息--》--》保護工作簿下拉--》用密碼進行加密--》設置密碼--》確定 重新打開的時候 就有密碼了
『叄』 怎麼讓phpexcel生成的excel文件打開時需要密碼
excel 文件--》信息--》--》保護工作簿下拉--》用密碼進行加密--》設置密碼--》確定
重新打開的時候 就有密碼了
『肆』 phpexcel怎麼讀取加密的excel文檔
1下載 phpexcel,
2require_once '../Classes/PHPExcel/IOFactory.php'$reader =PHPExcel_IOFactory::createReader('Excel5'); // 讀取 excel 文件方式 此方法是讀取excel2007之前的版本 excel2007 為讀取2007以後的版本 也可以ClassesPHPExcelReader 文件夾中的類(為所有讀取類,需要哪個填上哪個就行)$PHPExcel = $reader->load("info.xls"); // 文件名稱$sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表從0讀起$highestRow = $sheet->getHighestRow(); // 取得總行數$highestColumn = $sheet->getHighestColumn(); // 取得總列數// 根據自己的數據表的大小修改;3$arr=array(1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6=>'F',7=>'G',8=>'H',9=>'I',10=>'J',11=>'K',12=>'L',13=>'M',14=>'N',15=>'O',16=>'P',17=>'Q',18=>'R',19=>'S',20=>'T',21=>'U',22=>'V',23=>'W',24=>'X',25=>'Y',26=>'Z');// 每次讀取一行,再在行中循環每列的數值for ($row = 5; $row <= $highestRow; $row++) {for ($column = 1; $arr[$column] != 'T' $column++) {$val = $sheet->getCellByColumnAndRow($column, $row)->getValue();$list[$row][] = $val;}}
print_r($list)。這個方法嘛,可能也不是任何時候都可以的,但確實是很實用的,試試之後你們會有不一樣的感受的,真的是這樣。
『伍』 如何讓phpexcel生成的excel文件打開時需要密碼
excel
文件--》信息--》--》保護工作簿下拉--》用密碼進行加密--》設置密碼--》確定
重新打開的時候
就有密碼了
『陸』 PHP 導出Excel 加水印,加密
composer require phpoffice/phpspreadsheet
然後直接按示例操作就好了
『柒』 php excel加密的實現方法有什麼
PHP中的加密方式有如下幾種
1. MD5加密
string md5 ( string $str [, bool $raw_output = false ] )
參數
str -- 原始字元串。
raw_output -- 如果可選的 raw_output 被設置為 TRUE,那麼 MD5 報文摘要將以16位元組長度的原始二進制格式返回。
這是一種不可逆加密,執行如下的代碼
$password = 『123456『;
echo md5($password);
得到結果是
2. Crype加密
string crypt ( string $str [, string $salt ] )
crypt() 返回一個基於標准 UNIX DES 演算法或系統上其他可用的替代演算法的散列字元串。
參數
str -- 待散列的字元串。
salt -- 可選的鹽值字元串。如果沒有提供,演算法行為將由不同的演算法實現決定,並可能導致不可預料的結束。
這是也一種不可逆加密,執行如下的代碼
代碼如下:
$password = 『123456『;
$salt = "test";// 只取前兩個
echo crypt($password, $salt);
得到的結果是teMGKvBPcptKo
使用自動鹽值的例子如下:
代碼如下:
$password = crypt(『mypassword『); // 自動生成鹽值
/* 你應當使用 crypt() 得到的完整結果作為鹽值進行密碼校驗,以此來避免使用不同散列演算法導致的問題。(如上所述,基於標准 DES 演算法的密碼散列使用 2 字元鹽值,但是基於 MD5 演算法的散列使用 12 個字元鹽值。)*/
if (crypt(『mypassword『, $password) == $password) {
echo "Password verified!";
}
執行結果是輸出 Password verified!
以不同散列類型使用 crypt()的例子如下:
代碼如下:
if (CRYPT_STD_DES == 1) {
echo 『Standard DES: 『 . crypt(『rasmuslerdorf『, 『rl『) . "\n";
}
if (CRYPT_EXT_DES == 1) {
echo 『Extended DES: 『 . crypt(『rasmuslerdorf『, 『_J9..rasm『) . "\n";
}
if (CRYPT_MD5 == 1) {
echo 『MD5: 『 . crypt(『rasmuslerdorf『, 『$1$rasmusle$『) . "\n";
}
if (CRYPT_BLOWFISH == 1) {
echo 『Blowfish: 『 . crypt(『rasmuslerdorf『, 『$2a$07$usesomesillystringforsalt$『) . "\n";
}
if (CRYPT_SHA256 == 1) {
echo 『SHA-256: 『 . crypt(『rasmuslerdorf『, 『$5$rounds=5000$usesomesillystringforsalt$『) . "\n";
}
if (CRYPT_SHA512 == 1) {
echo 『SHA-512: 『 . crypt(『rasmuslerdorf『, 『$6$rounds=5000$usesomesillystringforsalt$『) . "\n";
}
其結果如下
Standard DES: rl.3StKT.4T8M
Extended DES: _J9..rasmBYk8r9AiWNc
MD5: $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish: $2a$07$./U9C8sBjqp8I90dH6hi
SHA-256: $5$rounds=5000$usesomesillystri$/Tp.6
SHA-512: $6$rounds=5000$usesomesillystri$.S5KPgErtP/EN5mcO.ChWQW21
在 crypt() 函數支持多重散列的系統上,下面的常量根據相應的類型是否可用被設置為 0 或 1:
CRYPT_STD_DES - 基於標准 DES 演算法的散列使用 "./0-9A-Za-z" 字元中的兩個字元作為鹽值。在鹽值中使用非法的字元將導致 crypt() 失敗。
CRYPT_EXT_DES - 擴展的基於 DES 演算法的散列。其鹽值為 9 個字元的字元串,由 1 個下劃線後面跟著 4 位元組循環次數和 4 位元組鹽值組成。它們被編碼成可列印字元,每個字元 6 位,有效位最少的優先。0 到 63 被編碼為 "./0-9A-Za-z"。在鹽值中使用非法的字元將導致 crypt() 失敗。
CRYPT_MD5 - MD5 散列使用一個以 $1$ 開始的 12 字元的字元串鹽值。
CRYPT_BLOWFISH - Blowfish 演算法使用如下鹽值:「$2a$」,一個兩位 cost 參數,「$」 以及 64 位由 「./0-9A-Za-z」 中的字元組合而成的字元串。在鹽值中使用此范圍之外的字元將導致 crypt() 返回一個空字元串。兩位 cost 參數是循環次數以 2 為底的對數,它的范圍是 04-31,超出這個范圍將導致 crypt() 失敗。
CRYPT_SHA256 - SHA-256 演算法使用一個以 $5$ 開頭的 16 字元字元串鹽值進行散列。如果鹽值字元串以 「rounds=$」 開頭,N 的數字值將被用來指定散列循環的執行次數,這點很像 Blowfish 演算法的 cost 參數。默認的循環次數是 5000,最小是 1000,最大是 999,999,999。超出這個范圍的 N 將會被轉換為最接近的值。
CRYPT_SHA512 - SHA-512 演算法使用一個以 $6$ 開頭的 16 字元字元串鹽值進行散列。如果鹽值字元串以 「rounds=$」 開頭,N 的數字值將被用來指定散列循環的執行次數,這點很像 Blowfish 演算法的 cost 參數。默認的循環次數是 5000,最小是 1000,最大是 999,999,999。超出這個范圍的 N 將會被轉換為最接近的值。
3. Sha1加密
string sha1 ( string $str [, bool $raw_output = false ] )
參數
str -- 輸入字元串。
raw_output -- 如果可選的 raw_output 參數被設置為 TRUE,那麼 sha1 摘要將以 20 字元長度的原始格式返回,否則返回值是一個 40 字元長度的十六進制數字。
這是也一種不可逆加密,執行如下代碼:
$password = 『123456『;
echo sha1($password);
得到的結果是
以上幾種雖然是不可逆加密,但是也可以根據查字典的方式去解密。如下的地址中就提供了可以將上面的加密結果解密出來的功能。
http://www.cmd5.com/
那大家是不是加了就算加了密,也沒用啊,其實不然,只要你的加密足夠復雜,被破解出的可能性就越小,比如用以上三種加密方式混合加密,之後我會推薦給大家一個php的加密庫。
4. URL加密
string urlencode ( string $str )
此函數便於將字元串編碼並將其用於 URL 的請求部分,同時它還便於將變數傳遞給下一頁。
返回字元串,此字元串中除了 -_. 之外的所有非字母數字字元都將被替換成百分號(%)後跟兩位十六進制數,空格則編碼為加號(+)。此編碼與 WWW 表單 POST 數據的編碼方式是一樣的,同時與 application/x-www-form-urlencoded 的媒體類型編碼方式一樣。由於歷史原因,此編碼在將空格編碼為加號(+)方面與 RFC1738 編碼不同。
string urldecode ( string $str )
解碼給出的已編碼字元串中的任何 %##。 加號(『+『)被解碼成一個空格字元。
這是一種可逆加密,urlencode方法用於加密,urldecode方法用於解密,執行如下代碼:
$url = 『http://www.xxx.com/CraryPrimitiveMan/『;
$encodeUrl = urlencode($url);
echo $encodeUrl . "\n";// 如果是在網頁上展示的,就將\n修改為
echo urldecode($encodeUrl);
得到的結果如下
http%3A%2F%2Fwww.xxx.com%2FCraryPrimitiveMan%2F
http://www.xxx.com/CraryPrimitiveMan/
基於RFC 3986的加密URL的方法如下:
代碼如下:
function myUrlEncode($string) {
$entities = array(『%21『, 『%2A『, 『%27『, 『%28『, 『%29『, 『%3B『, 『%3A『, 『%40『, 『%26『, 『%3D『, 『%2B『, 『%24『, 『%2C『, 『%2F『, 『%3F『, 『%25『, 『%23『, 『%5B『, 『%5D『);
$replacements = array(『!『, 『*『, "『", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]");
return str_replace($entities, $replacements, urlencode($string));
}
5. Base64信息編碼加密
string base64_encode ( string $data )
使用 base64 對 data 進行編碼。
設計此種編碼是為了使二進制數據可以通過非純 8-bit 的傳輸層傳輸,例如電子郵件的主體。
Base64-encoded 數據要比原始數據多佔用 33% 左右的空間。
string base64_decode ( string $data [, bool $strict = false ] )
對 base64 編碼的 data 進行解碼。
參數
data -- 編碼過的數據。
strict -- 如果輸入的數據超出了 base64 字母表,則返回 FALSE。
執行如下代碼:
代碼如下:
$name = 『CraryPrimitiveMan『;
$encodeName = base64_encode($name);
echo $encodeName . "\n";
echo base64_decode($encodeName);
其結果如下
代碼如下:
Q3JhcnlQcmltaXRpdmVNYW4=
CraryPrimitiveMan
推薦phpass
經 phpass 0.3 測試,在存入資料庫之前進行哈希保護用戶密碼的標准方式。 許多常用的哈希演算法如 md5,甚至是 sha1 對於密碼存儲都是不安全的, 因為駭客能夠使用那些演算法輕而易舉地破解密碼。
對密碼進行哈希最安全的方法是使用 bcrypt 演算法。開源的 phpass 庫以一個易於使用的類來提供該功能。
代碼如下:
<?php
// Include phpass 庫
require_once(『phpass-03/PasswordHash.php『)
// 初始化散列器為不可移植(這樣更安全)
$hasher = new PasswordHash(8, false);
// 計算密碼的哈希值。$hashedPassword 是一個長度為 60 個字元的字元串.
$hashedPassword = $hasher->HashPassword(『my super cool password『);
// 你現在可以安全地將 $hashedPassword 保存到資料庫中!
// 通過比較用戶輸入內容(產生的哈希值)和我們之前計算出的哈希值,來判斷用戶是否輸入了正確的密碼
$hasher->CheckPassword(『the wrong password『, $hashedPassword); // false
$hasher->CheckPassword(『my super cool password『, $hashedPassword); // true
?>
『捌』 php excel上傳到指定目錄並重命名為指定名字
上傳頁面
<div class="out_in">
<div class="my_title">二、數據導入</div>
<div class="content">
<form name="data_in" id="data_in" action="data_in.php" method="post" enctype="multipart/form-data" style="margin-top:20px;">
<input type="hidden" name="filename" />
選擇文件:<input name="file" Type="file" style="width:350px;height:25px;font-size:18px;" />
<input type="button" value="導入" onClick="submit()" style="width:70px;height:25px;font-size:18px;"/>
</form>
</div>
</div>
數據處理頁面:
<?php
include("../config/string.php");
include("../config/system.ini.php");
include("../config/const.ini.php");
include("../lib/session.php");
include("../lib/db.php");
include("../lib/html.php");
include("../lib/system.php");
include("../fun/sys.php");
include("../lib/zip.php");
check_session();
$_SESSION["help_id"]=6;
h_start("../",1);
h_css("css/data.css");
h_css("../css/tab.css");
h_title(STR_VOUCHER,"style=\"background-color:#d4ecfc;\"");
set_navigation("../homepage.php,系統首頁,data.php,導入導出");
$mylink=db_link();
if($_POST){
$filename=$_FILES["file"]["name"];
$type=substr($filename,strlen($filename)-3,3);
if($type!="zip"){
die(h_alert("非法文件格式!","data.php"));
}
move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
if(!file_exists($filename)){
die(h_alert("文件上傳失敗!","data.php"));
}
$zip_name=$filename;
$zip = new PclZip($zip_name);//解壓文件
$zip->extract();
$tmp=substr($filename,0,strlen($filename)-4);
$filename=$tmp.".skcg";
data_in($filename,$mylink,"data.php");//讀入數據
h_alert("導入成功!","data.php");
($zip_name,"upload/".$zip_name);
unlink($zip_name);
unlink($filename);
}
?>
這是我程序源碼中自己寫的一個 功能,作用是將一個加密的mysql插入、修改,刪除語句文件壓縮包上傳到伺服器解包解密導入資料庫,希望對你有幫助
『玖』 PHP生成excel文件的時候能不能給它加密
用WordKey恢復Word密碼
「WordKey」是一款著名的Word密碼恢復工具,可以通過「暴力破解」、「字典破解」等方法,快速將Word文檔中的密碼恢復出來。所以當忘記Word文檔密碼後,「WordKey」就可以幫上大忙啦!
『拾』 怎麼把文檔、電子表格加密,需要密碼才可以看啊謝謝
用工具——選項——安全性——打開許可權密碼——即可