php資料夾內的所有檔案數量總和包含第一層資料夾的所有檔案數量

目前能計算總合數量
以及第一層目錄 每一個目錄的內含檔案總量(包括第N層)
第二層以及第二層後的只會列出該資料夾內的數量

 

<?php

//此程式子資料夾內的數量不對
//但是第一層資料夾總和是正確的 (包括N層的總和)
//第二層後的只會秀該資料夾內的檔案數量 不會包含第二層到第三層的~~~~到N層的總和
//只花1小時寫沒有寫很好

$dirn = 0; //目錄數
$filen = 0; //檔案數
$filen_this=0;//第一層子資料夾內檔案總合數
$filen_this_now=0;
$timeplus=0;

//打開目錄
$dir = opendir(“./"); // ./代表目前目錄
//$dir = opendir(“qq123″); // ./代表目前目錄

//列出 目錄中的文件
while($file = readdir($dir)) {
if($file!="." && $file !="..")
{
$filen_this=0;

if(is_dir($file)) {

getdirnum($file);
echo ‘<p style="background-color:#ffe58f;">’.$file."資料夾-總檔案數為:{$filen_this}<br></p>";
}

}
}

closedir($dir);
//用來統計一個目錄下的檔案和目錄的個數
function getdirnum($file) {

global $dirn;
global $filen;
global $filen_this;

global $filen_this_now;

$filen_this_now=0;
//算目前資料夾下檔案數
$FileNum=count(glob(“$file/*.*"));
$filen=$filen+$FileNum;

$filen_this=$filen_this+$FileNum;
$filen_this_now=$filen_this_now+$FileNum;

$dir = opendir($file);
echo " -“.$file."資料夾-檔案數為:{$filen_this_now}<br>";

while($filename = readdir($dir)) {

if($filename!="." && $filename !="..")
{

$filename = $file."/".$filename; //因為子資料夾要加路徑/符號

if(is_dir($filename)) {

//echo " -“.$filename."資料夾-檔案數為:{$filen_this_now}<br>";

getdirnum($filename); //遞迴,就可以檢視所有子目錄

}
// else {}
}
}

closedir($dir);

}//getdirnum()END
//echo “全部-目錄數為:{$dirn}<br>";
echo “全部-檔案數為:{$filen}<br>";

?>

虛擬主機 出去ip 跟進來ip 不一樣用php curl測試

測試端
ip-t.php
<?php
//請另存成ip-t.php 然後上傳server網路上跑,會送去ip.php看 進與出的IP
//init curl
$ch = curl_init();
//curl_setopt可以設定curl參數
//設定url
curl_setopt($ch , CURLOPT_URL , “https://yourdomain.com/ip.php");
//設定header
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Content-type: application/x-www-form-urlencoded’));
//啟用POST
curl_setopt($ch, CURLOPT_POST, true);
//傳入POST參數
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( “name"=>"johnson") ));
//執行,並將結果存回
$result = curl_exec($ch);
//關閉連線
curl_close($ch);
?>

接收端
ip.php
<?php
echo $_SERVER[“HTTP_REFERER"];
echo ‘<br>’;
//echo $_SERVER[‘HTTP_X_FORWARDED_FOR’];
//echo ‘<br>’;
echo $_SERVER[‘REMOTE_ADDR’]; //使用者出去的ip
echo ‘<br>’;
echo $_SERVER[‘SERVER_ADDR’]; //進來的ip
?>

使用情境:
因為有時候會需要由server發向另一台主機程式
而另一台總是擋掉ip 才發現虛擬主機給的ip 只是進去,發出的ip是不同的
原理:
而使用者 如果用$_SERVER[‘REMOTE_ADDR’]; 去看 只會看到使用者自己電腦的IP,
所以需要用server主機 使用curl模擬post出去 就會是server端送出了。

slim (v3)筆記筆記

Route路由 網址相關

網址後面問號 ?多變數 如何取得
下面範例
//多個變數
//$params=$request->getQueryParams(); //拿到後 轉變陣列;
// if(isset($params[‘category’])){
// echo$params[‘category’];
// }

網址後面有斜線/跟沒斜線都一樣內容
//有斜線跟沒斜線都一樣
// $app->get(‘/cc[/]’, function ($request, $response,$args) {
// echo ‘頁’;
// });

同時多網址都一樣內容
//多個網址導向同樣頁面
//$app->get(‘{route:/cc/|/aa/}’, function ($request, $response,$args) {
//echo ‘cool’;
//});

js ajax to php

JS端=================================

//vm 是js裡可以用的陣列格式 例如 vm[0][‘id]=189;

//JSON.stringify(vm) //轉成json資料格式

//JS AJAX送出
$.ajax({
type: “POST",
url: “indexBlock_savedata.php",
data: JSON.stringify(vm),
contentType: “application/json; charset=utf-8″,
dataType: “json",
success: function(data){
console.log(data);
},
failure: function(errMsg) {
//console.log(666666);
}
});

PHP端接收=================================

$json_string=file_get_contents(“p h p://input"); //得到postman發送來的資料: (注意這一段有錯唷 要把p空格h空格p的空格刪除)

//$data = json_decode($json_string) //json轉Object,使用$data->account方式

$data = json_decode($json_string, true);//json轉Array,使用$data[“account"]方式

//echo count($data);

//echo $data[0][‘id’];

php function裡用外部變數

php function裡用外部變數

(php 5.4 測試適用)

$a = 1; /* global scope */

function test()
{
global $a;  /* reference to local scope variable */
echo $a;
}

上傳檔案單一檔案常常忘記的小事

test_upload.php

<form action="test_upload2.php" method="post" enctype="multipart/form-data">
檔案名稱:<input type="file" name="srpic" id="srpic" /><br />
<input type="submit" name="submit" value="上傳檔案" />
</form>

test_upload2.php

<?php
echo “你上傳的檔案名稱: " . $_FILES[“srpic"][“name"]."<br/>";
echo “檔案類型: " . $_FILES[“srpic"][“type"]."<br/>";
echo “檔案大小: " . ($_FILES[“srpic"][“size"] / 1024)." <br />";
echo “暫存檔案名稱: " . $_FILES[“srpic"][“tmp_name"];
?>

 

srpic 是你的input type 的 nane

用陣列array去當作if多重判斷式

if( x ==jpg || x==gif || x==png)//這樣很多會出錯並且很煩

嘗試 array去當作if多重判斷式 這樣用法

$HappyArray = array(
“jpg" => “jpg",
“JPG" => “JPG",
“gif" => “gif",
“GIF" => “GIF"
);
if(isset($HappyArray[‘avi’])){
echo $HappyArray[“avi"];
}else {
echo ‘is null’;
}