最近在WRTNode上開發一個小的Http服務器程序,下面對使用做一下小結,有錯誤的地方還請指出。
一、反斜槓情況的處理
$filename = addslashes($filename);
二、PHP處理Mysql事務
// 執行事務, 參數是由多條sql語句組成的數組
function excute_transaction($sql_array){
$conn = m_connect_mysql();
if (!$conn) {
return false;
}
try {
mysql_query("BEGIN");
$count = count($sql_array);
for ($i = 0; $i < $count; ++$i){
$result = mysql_query($sql_array[$i]);
if (!$result){
echo $sql_array[$i] . " wrong";
if (DEBUG){
echo (mysql_error($sql_array[$i]));
}
mysql_query("ROLLBACK");
m_close_connect($conn);
return false;
}
}
mysql_query("COMMIT");
m_close_connect($conn);
return true;
} catch (Exception $exc) {
mysql_query("ROLLBACK");
if (DEBUG){
echo $exc->getTraceAsString();
}
return false;
}
}
三、處理JSON
$jsonString = $_POST["filename"];
$jsonArray = json_decode($jsonString, TRUE); // json解碼成數組
$keyvalue = $jsonArray["filename"];
json_decode的第二個參數設置爲TRUE,則該函數,就能將Json格式的字符串轉換爲數組的形式,然後我們可以像下面這段代碼一樣,遍歷數組,處理我們需要的數據。for ($i = 1; $i < $length; ++$i){
<span style="white-space:pre"> </span>$where = $keyvalue[$i]["where"];
$name = $keyvalue[$i]["name"];
}
function view_all_files(){
$sql = "select a.ID, a.FILE_NAME, a.CHUNKS, b.IS_UPDATE, count(a.FILE_NAME) as count from files as a, fragmentations as b where a.ID = b.BELONGS_ID and b.IS_UPDATE = 1 group by a.FILE_NAME;";
$result = excute_sql($sql);
if (!$result){
return false;
}
$files_array = array();
while ($row = mysql_fetch_array($result)){
$chunks = $row["CHUNKS"];
$file_name = $row["FILE_NAME"];
$count = $row["count"];
if ($chunks == $count){
array_push($files_array, $file_name);
}
}
return json_encode($files_array);
}