$url = '上傳網址'; $file_path = "檔案絕對路徑"; $fields = array('key'=>'val'); // post值 function curl_file_get_contents($url,$file_path,$fields='') { $files['files[0]'] = file_get_contents($file_path); // curl $curl = curl_init(); $boundary = uniqid(); $delimiter = '-------------' . $boundary; $post_data = build_data_files($boundary, $fields, $files); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 1, CURLOPT_RETURNTRANSFER => 1, CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, //CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $post_data, CURLOPT_HTTPHEADER => array( //"Authorization: Bearer $TOKEN", "Content-Type: multipart/form-data; boundary=" . $delimiter, "Content-Length: " . strlen($post_data) ), )); $response = curl_exec($curl); $info = curl_getinfo($curl); $err = curl_error($curl); curl_close($curl); return $response; } function build_data_files($boundary, $fields, $files){ $data = ''; $eol = "\r\n"; $delimiter = '-------------' . $boundary; if ($fields) { foreach ($fields as $name => $content) { $data .= "--" . $delimiter . $eol . 'Content-Disposition: form-data; name="' . $name . "\"".$eol.$eol . $content . $eol; } } foreach ($files as $name => $content) { $data .= "--" . $delimiter . $eol . 'Content-Disposition: form-data; name="' . $name . '"; filename="' . $name . '"' . $eol //. 'Content-Type: image/png'.$eol . 'Content-Transfer-Encoding: binary'.$eol ; $data .= $eol; $data .= $content . $eol; } $data .= "--" . $delimiter . "--".$eol; return $data; }
2019年3月11日 星期一
【PHP】CURL 傳檔案 方法2
2019年1月8日 星期二
【apache】.htaccess Rewrite 設定
# 打開重寫引擎
RewriteEngine On
# 設定基準目錄,從根目錄開始比對
RewriteBase /
# 比對網址,倘若符合 thumbnail,則轉址到 cache 底下,至此結束。
RewriteRule ^(thumbnail)/([0-9]+/.+)$ cache/$1/$2 [L]
# 重新比對網址,倘若結尾是 mp3, mov, ogg, mp4, avi, wmv,不做任何替代,直接 404,至此結束。
RewriteRule (.[^\.]).(mp3|mov|ogg|mp4|avi|wmv)$ - [NC,F,L]
# 設定比對條件,若請求的網址是檔案。
RewriteCond %{REQUEST_FILENAME} -f
# 重新比對網址,倘若是 cache,但是非 sitemap 底下,結尾是 .cache, .xml, .txt, .log,不做任何替代,直接 404,至此結束。
RewriteRule ^(cache)+/+([^sitemap/])(.+[^/]).(cache|xml|txt|log)$ - [NC,F,L]
# 重新比對網址,倘若請求網址是資料夾。
RewriteCond %{REQUEST_FILENAME} -d
# 在結尾加上 /,至此結束。
RewriteRule ^(.+[^/])$ $1/ [L]
# 重新比對網址,倘若請求網址不是檔案。
RewriteCond %{REQUEST_FILENAME} !-f
# 將請求網址轉給 rewrite.php 這支檔案,至此結束,並連同 Query String 一併傳入。
RewriteRule ^(.*)$ rewrite.php [L,QSA]
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
詳細:https://blog.hinablue.me/apache-note-about-some-rewrite-note-2011-05/
RewriteEngine On
# 設定基準目錄,從根目錄開始比對
RewriteBase /
# 比對網址,倘若符合 thumbnail,則轉址到 cache 底下,至此結束。
RewriteRule ^(thumbnail)/([0-9]+/.+)$ cache/$1/$2 [L]
# 重新比對網址,倘若結尾是 mp3, mov, ogg, mp4, avi, wmv,不做任何替代,直接 404,至此結束。
RewriteRule (.[^\.]).(mp3|mov|ogg|mp4|avi|wmv)$ - [NC,F,L]
# 設定比對條件,若請求的網址是檔案。
RewriteCond %{REQUEST_FILENAME} -f
# 重新比對網址,倘若是 cache,但是非 sitemap 底下,結尾是 .cache, .xml, .txt, .log,不做任何替代,直接 404,至此結束。
RewriteRule ^(cache)+/+([^sitemap/])(.+[^/]).(cache|xml|txt|log)$ - [NC,F,L]
# 重新比對網址,倘若請求網址是資料夾。
RewriteCond %{REQUEST_FILENAME} -d
# 在結尾加上 /,至此結束。
RewriteRule ^(.+[^/])$ $1/ [L]
# 重新比對網址,倘若請求網址不是檔案。
RewriteCond %{REQUEST_FILENAME} !-f
# 將請求網址轉給 rewrite.php 這支檔案,至此結束,並連同 Query String 一併傳入。
RewriteRule ^(.*)$ rewrite.php [L,QSA]
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
詳細:https://blog.hinablue.me/apache-note-about-some-rewrite-note-2011-05/
2018年12月25日 星期二
【apache】VC6 9 11 15?
安裝apache到windows有分VC多少版本的
他是指用VisualStudio多少版本編譯的,windows也要去下載對應套件才能用
但太舊的windows會不支援新版的VisualStudio
VC6 Visual Studio 6
VC9 Visual Studio2008
VC11 Visual Studio2012 (xp、windows server2003不支援)
VC14 Visual Studio2015 (xp、windows server2003不支援)
VC15 Visual Studio2017 (xp、windows server2003不支援)
他是指用VisualStudio多少版本編譯的,windows也要去下載對應套件才能用
但太舊的windows會不支援新版的VisualStudio
VC6 Visual Studio 6
VC9 Visual Studio2008
VC11 Visual Studio2012 (xp、windows server2003不支援)
VC14 Visual Studio2015 (xp、windows server2003不支援)
VC15 Visual Studio2017 (xp、windows server2003不支援)
【PHP】php.ini 設定發信信箱及信箱密碼 win32
參考網址:http://php.net/manual/en/ref.mail.php
1.到 http://glob.com.au/sendmail/ 下載 sendmail
2.找個目錄放,我是放到跟php的目錄裡面
3.修改php.ini 找到 mail function
修改 sendmail_path = "C:\php\sendmail\sendmail.exe -t" (剛剛下載的檔案的位置)
4.修改 sendmail 裡的 sendmail/sendmail.ini
smtp_server=(郵件主機)
auth_username=(帳號)
auth_password=(密碼)
2018年12月10日 星期一
【CSS】mask 滿畫面
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: #000;
opacity: 0.65;
z-index: 100;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: #000;
opacity: 0.65;
z-index: 100;
2018年9月7日 星期五
【PHP】瀏覽過的商品
function save_history($id,$max=10) { $t = 60 * 60 * 24 * 365; if ($_COOKIE['history_goods']) { $history_goods_arr = json_decode($_COOKIE['history_goods'],true); if (in_array($id,$history_goods_arr)) { return false; } if (count($history_goods_arr) >= $max) { array_shift($history_goods_arr); } $history_goods_arr[] = $id; setcookie("history_goods",'',time()-3600); setcookie("history_goods",$history_goods,time()+$t); } else { $history_goods_arr[] = $id; $history_goods = json_encode($history_goods_arr); setcookie("history_goods",$history_goods,time()+$t); } }
2018年8月17日 星期五
【PHP】extract
extract 這很好用可以直接把陣列變成變數
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
但不要用於GET和POST
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
但不要用於GET和POST
【PHP】htmlspecialchars && htmlentities && urlencode
htmlspecialchars 與 htmlentities 感覺效果一樣都是把HTML的標籤變成代碼
但 htmlspecialchars 只會轉換特定的符號,htmlentities 轉換的比較多
所以一般要用 htmlspecialchars 速度較快
urlencode 主要是編碼 URL
但 htmlspecialchars 只會轉換特定的符號,htmlentities 轉換的比較多
所以一般要用 htmlspecialchars 速度較快
urlencode 主要是編碼 URL
【PHP】serialize && json
有天看到資料別人資料出現:a:2:{i:0;s:1:"1";i:1;s:1:"2";}
這是三小,
後來查一下他是用 serialize 將 array 編碼後的字串,
我一般都是用 json_encode 將陣列編碼在存入資料庫,
查了一下 serialize 好處是可以把整個class轉成字串,
但一般沒特殊需求還是用 JSON 格式,不但可讀也可跨平台。
這是三小,
後來查一下他是用 serialize 將 array 編碼後的字串,
我一般都是用 json_encode 將陣列編碼在存入資料庫,
查了一下 serialize 好處是可以把整個class轉成字串,
但一般沒特殊需求還是用 JSON 格式,不但可讀也可跨平台。
2018年7月2日 星期一
【Google】AMP 行動網站加速計劃
訂閱:
文章 (Atom)