$new_array = array();
foreach($old_array AS $k => $v){
if( array_key_exists($k, $new_array) ){
$new_array[$k] = $new_array[$k] + $v;
}else{
$new_array[$k] = $v;
}
}
ksort($new_array); // 依照Key值排序
[PHP]CURL POST 資料
function CurlPost($PostURL,$PostData,$PStr=null){
if($PStr){ //使用字串方式post
foreach ($PostData as $k => $v) {
$PostStr .= $k.'='.urlencode($v).'&';
$PostCount++; // 計算共幾個post欄位
}
$PostStr = substr($PostStr,0,-1);//消去字尾多餘的 '&'
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $PostURL); // 設定所要傳送網址
curl_setopt($ch,CURLOPT_HEADER, false); // 不顯示網頁
curl_setopt($ch,CURLOPT_POST,1); // 開啟回傳
curl_setopt($ch,CURLOPT_POSTFIELDS,$PostData); // 將post資料塞入
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); // 開啟將網頁內容回傳值
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //略過SSL連線驗證
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //略過SSL連線驗證
$GetPost = curl_exec($ch); // 執行網頁
curl_close($ch); // 關閉網頁
return $GetPost;
}
mouseon 放大圖片
HTML:
< img src="image.png" width="90%" class="resizableImage" >
JQUERY:
$('.resizableImage').hover(makeBigger, returnToOriginalSize);
function makeBigger() {
$(this).css({height: '+=10%', width: '+=10%'});
}
function returnToOriginalSize() {
$(this).css({height: "", width: ""});
}
PHP & ajax
$.ajax({
url: '//www.gocar.idv.tw/tset/test.php',
cache:false,
async:false,
type: "POST",
dataType: 'json',
data: '&key='+key ,
success: function (data) {
$.each(data, function(index, val) {
});
}, error:function(msg){
alert('錯誤!'+msg);
}
});
[PHP]MySQL Temporary Table
function create_tmp_table($tmp_table,$tmp_col){
drop_tmp_table($tmp_table); // 使用前先刪除
$sql_str = '';
foreach($tmp_col AS $k => $v){
$sql_str .= "$k $v,";
}
$sql = "CREATE TEMPORARY TABLE $tmp_table (
ID INT NOT NULL AUTO_INCREMENT,
$sql_str
tmp_create_time datetime,
PRIMARY KEY(ID)
)"; //建立暫存table
$result = mysqli_query($conn,$sql);
}
function ins_tmp_table($tmp_table,$arr){
foreach($arr AS $k => $v){
$sql_str .= "$k = '$v',";
}
$sql = "INSERT INTO $tmp_table SET $sql_str tmp_create_time = NOW()";
$result = mysqli_query($conn,$sql);
}
function drop_tmp_table($tmp_table){
$sql = "DROP TEMPORARY TABLE IF EXISTS $tmp_table ";
$result = mysqli_query($conn,$sql);
}
$tmp_table = 'tmp_tablename'; // 前面要加 tmp_,避免誤刪正式table
$tmp_col = array( // 設定欄位
'col1' => 'varchar(20)',
'col2' => 'varchar(10)',
'the_time' => 'datetime'
);
create_tmp_table($tmp_table,$tmp_col);
$arr[col1] = 'hello';
$arr[col2] = 'world';
$arr[the_time] = 2019-01-01 00:00:00;
ins_tmp_table($tmp_table,$arr); // 寫入臨時表
/*
SELECT * FROM tmp_table
*/
drop_tmp_table($tmp_table); // 用完記得要刪除
[PHP]檔案上傳
HTML:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
PHP 程式碼
// 可以取自己想要的檢查使用
$uploadOk = 1; // 若為0代表檢查失敗
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
$target_dir = "uploads/"; // 存放檔案的目錄
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // 上傳檔案的檔名
//$target_file = $target_dir .date("YmdHis").".".$imageFileType; // 也可以自訂檔名
// 檢查上傳檔案是否為圖檔
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
//echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "很抱歉,檔案非圖檔.";
$uploadOk = 0;
}
}
// 檢查檔案是否重複
if (file_exists($target_file)) {
echo "檔案已存在";
$uploadOk = 0;
}
// 檢查檔案大小
//if ($_FILES["fileToUpload"]["size"] > 8000000) {
// echo "很抱歉,,檔案太大.";
// $uploadOk = 0;
//}
// 檔案格式檢查
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) {
echo "很抱歉,檔案格式錯誤";
$uploadOk = 0;
}
if ($uploadOk == 0) { // 回報上傳失敗
echo "很抱歉,檔案上傳失敗";
} else { // 確認檔案沒問題,就將檔案由暫存區搬移至正式區
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "檔案 : ". basename( $_FILES["fileToUpload"]["name"]). " 上傳成功";
} else {
echo "很抱歉,檔案上傳失敗";
}
}
[PHP] str_pad 字串補零
str_pad($str,長度,要補的字元,靠左或靠右);
$str = '123';
echo str_pad($str,10,"0",STR_PAD_LEFT);
//輸出:0000000123
echo str_pad($str,10,"0",STR_PAD_RIGHT);
//輸出:1230000000
echo str_pad($str,10,"0",STR_PAD_BOTH);
//輸出:0001230000
[PHP]substr 中文亂碼
substr遇上中文時會出現亂碼
echo substr('Hi你好!',0,3); // 輸出 Hi 後面就亂碼
這時就要改用mb_substr
echo mb_substr('Hi你好!',0,3); // 就可以正常輸出 Hi你
[PHP] PHPExcel 檔案匯入
首先我們要先下載PHPExcel
PHPExcel Github https://github.com/PHPOffice/PHPExcel
程式碼:
include_once("/phpexcel/PHPExcel/IOFactory.php");
$file = "upload/test.xlsx";
//$sheetname = 'mysheet'; // 如果要指定工作表
//$objReader->setLoadSheetsOnly($sheetname);
$type = PHPExcel_IOFactory::identify($file); //自動偵測檔案格式
//$type = 'Excel2007'; //也可以手動指定
$objReader = PHPExcel_IOFactory::createReader($type);
$objPHPExcel = $objReader->load($file); //讀取檔案
echo ' 欄數: ' . $getHighestColumn = $objPHPExcel->setActiveSheetIndex()->getHighestColumn(); // 取得寬有幾格
echo ' 行數: ' . $getHighestRow = $objPHPExcel->setActiveSheetIndex()->getHighestRow(); // 共有幾行
// 設定資料區間,設定寬度區間為AC(29格),行數則是取 $getHighestRow,如果不要第一行標題可以把A1改為A2跳過第一行
$range = "A1:AC".$getHighestRow;
// 不設區間,把所有資料取出
//$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true);
//取出區間資料(陣列)
$sheetData = $objPHPExcel->getActiveSheet()->rangeToArray($range);
print_r($sheetData);
foreach($sheetData AS $k => $v){ // 在此作匯入處理
// INSERT DB
}
[PHP]取得字串中的數字
大部分的人都會用 preg_replace 正規表達式的方法清除數字以外的字元
不過其實可以用filter_var會比較直覺
$str = 'ABC123DEF'; $number = filter_var($str, FILTER_SANITIZE_NUMBER_INT); echo $number; // 顯示123的字串
其實 filter_var 可以透過替換掉後方的 “FILTER_SANITIZE_NUMBER_INT” 參數做很多用途,可以參考PHP手冊的參數說明 https://www.php.net/manual/en/filter.filters.php