2013年12月17日 星期二

SQL ORDER BY with LIKE

SELECT name 
FROM table 
WHERE name LIKE "%John%" 
ORDER BY (CASE WHEN name = "John" THEN 1 WHEN name LIKE "John%" THEN 2 ELSE 3 END),name LIMIT 10 ;


參考資料:
http://stackoverflow.com/questions/10070508/sqlite-like-order-by-match-query

2013年12月10日 星期二

input radio 點文字checked

<input type="radio" id="sex1" name="sex" value="M"  /><label for="sex1">male</label>

<input type="radio" id="sex2" name="sex" value="F"  /><label for="sex2">female</label>




參考資料:
http://blog.xuite.net/bluishbox/code/61378093-%5BHTML%5D+%E9%BB%9E%E9%81%B8+radio+%E5%BE%8C%E8%AE%8A%E8%89%B2


http://www.blueshop.com.tw/board/show.asp?subcde=BRD20081001220501J6M



http://pattyshih66.pixnet.net/blog/post/145680918-%E2%92%BF-%E4%BD%BF%E7%94%A8javascript%E5%8F%96%E5%BE%97radio%E5%92%8Cselect%E7%9A%84%E5%80%BC

2013年12月4日 星期三

Ajax + PHP + Jquery onblur

A.php
<script> 
  $(document).ready(function(){
//檢查帳號是否存在
$('#username').blur(function(){
var acc = document.getElementById("username").value;
$.ajax({url: '../db_select/db_member.php?acc='+acc, type: 'GET'})
  .done(function(response){
var msg = response; //因型態問題,須設置在變數中
if(msg == "no"){ //帳號不存在
$('#username').css({
'color' : '#F00'
});
$('#username').val('無此帳號!');
}
  });
});
});
</script>
<input name="username" type="text" id="username" />


db_member.php

$acc = "-1";
if (isset($_GET['acc']) && $_GET['acc'] != "") {
  $acc = (get_magic_quotes_gpc()) ? $_GET['acc'] : addslashes($_GET['acc']);
}
mysql_select_db($database_labor, $labor);
$sql = sprintf("SELECT acc FROM memberWHERE acc= '%s'", $acc);
$result = mysql_query($sql, $labor);
$row = mysql_fetch_assoc($result);
$total = mysql_num_rows($result);

if($total > 0){
echo "yes";
}else{
echo "no";
}

此時db_member.php就會回傳到A.php接收



參考資料:
http://stackoverflow.com/questions/12384166/send-ajax-request-when-textfields-onblur-event-is-fired

http://stackoverflow.com/questions/10886782/ajax-checking-username-onblur

2013年11月20日 星期三

javascrip 動態下拉式選單 一動二

<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function select1_onchange(ele) {
var Target = document.form1.select2;
var Value = ele.options[ele.options.selectedIndex].value;

//先將選項清空
for(var i=0;i< Target.options.length;i++ ){
Target.options[i]=null;
}
switch (Value) {
case '1' :
var labels = new Array("A","B","C");
                         //將新選項填入
for(var i = 0; i < labels.length; i++){
var newOption=new Option(labels[i],i);
                                /*另一種寫法
                                    var newOption=new Option;
                                     newOption.value=Value+"."+(i+1);
                                      newOption.text=Value+"."+(i+1);
                                */
if(i==0){
newOption.selected=true; //如果沒有這一句,則在NS4.5中,會是空白選項為預設選項。
}
document.form1.select2.options[i]=newOption;
}
break;
case '2' :
var labels = new Array("W","Q","R");
for(var i = 0; i < labels.length; i++){
var newOption=new Option(labels[i],i);
if(i==0){
newOption.selected=true; //如果沒有這一句,則在NS4.5中,會是空白選項為預設選項。
}
document.form1.select2.options[i]=newOption;
}
break;
}
}
function select2_onchange(ele) {
        document.form1.text1.value=ele.options[ele.selectedIndex].value
}









<FORM action="" method=POST id=form1 name=form1 >
<SELECT id="select1" name="select1" LANGUAGE=javascript onchange="return select1_onchange(this)">
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
</SELECT>
<SELECT id=select2 name=select2 LANGUAGE=javascript onchange="return select2_onchange(this)">
<OPTION value="0">A</OPTION>
<OPTION value="1">B</OPTION>
<OPTION value="2">C</OPTION>
</SELECT><INPUT type="text" id=text1 name=text1 size=3></FORM>











參考資料:
http://www.programmer-club.com/showSameTitleN/javascript/2197.html
http://www.dotblogs.com.tw/jellycheng/archive/2010/12/17/20215.aspx

http://www.w3schools.com/php/php_ajax_database.asp    AJAX (javascript 更動 SQL資料)
http://stackoverflow.com/questions/15605189/mysql-query-within-javascript





2013年11月19日 星期二

HTML 超連結

< a href = "  "  target = "  " >
指定欲連結的視窗(_blank,_top,_self,_parent,框窗名稱)

target=_blank:將連結的畫面內容,開在新的瀏覽視窗中。
target=_parent:將連結的畫面內容,當成文件的上一個畫面。
target=_self:將連結的畫面內容,顯示在目前的視窗中。
target=_top:這個參數可以解決新連結的畫面內容,被舊框窗包圍的困擾,使用這
                      參數,會將整個畫面重新顯示成連結的畫面內容。 




參考:
http://www.asjh.tn.edu.tw/xupload/learning/html/htmltag/a.htm

2013年10月30日 星期三

[PHP] Array() 用法

array value
in_array( "value", $arr );

參考資料:
http://php.net/manual/en/function.in-array.php


array key
array_keys("key", $arr);

參考資料:
http://php.net/manual/en/function.array-keys.php



array size
count( $array )
參考資料:
http://itgroup.blueshop.com.tw/ann71727/ann71727?n=convew&i=4596

2013年10月22日 星期二

PHP 亂數


//$random預設為10,更改此數值可以改變亂數的位數----
$random=10;
//FOR回圈以$random為判斷執行次數
for ($i=1;$i<=$random;$i=$i+1)
{
    //亂數$c設定三種亂數資料格式大寫、小寫、數字,隨機產生
    $c=rand(1,3);
    //在$c==1的情況下,設定$a亂數取值為97-122之間,並用chr()將數值轉變為對應英文,儲存在$b
    if($c==1){
       $a=rand(97,122);
       $b=chr($a);
    }
    //在$c==2的情況下,設定$a亂數取值為65-90之間,並用chr()將數值轉變為對應英文,儲存在$b
    if($c==2){
       $a=rand(65,90);
       $b=chr($a);
    }
    //在$c==3的情況下,設定$b亂數取值為0-9之間的數字
    if($c==3){
       $b=rand(0,9);
    }
    //使用$randoma連接$b
    $randoma=$randoma.$b;
}
//輸出$randoma每次更新網頁你會發現,亂數重新產生了
echo $randoma;


參考網站
http://piggy0227.wordpress.com/2009/12/15/php%E8%8B%B1%E6%95%B8%E4%BA%82%E7%A2%BC%E6%B5%81%E6%B0%B4%E8%99%9F%E5%87%BD%E6%95%B8/

2013年10月15日 星期二

PHP $_SERVER

$_SERVER['PHP_SELF'] #當前正在執行腳本的文件名,與 document root相關。
$_SERVER['argv'] #傳遞給該腳本的參數。
$_SERVER['argc'] #包含傳遞給程序的命令行參數的個數(如果運行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE'] #服務器使用的 CGI 規範的版本。例如,「CGI/1.1」。
$_SERVER['SERVER_NAME'] #當前運行腳本所在服務器主機的名稱。
$_SERVER['SERVER_SOFTWARE'] #服務器標識的字串,在響應請求時的頭部中給出。
$_SERVER['SERVER_PROTOCOL'] #請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
$_SERVER['REQUEST_METHOD'] #訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
$_SERVER['QUERY_STRING'] #查詢(query)的字符串。
$_SERVER['DOCUMENT_ROOT'] #當前運行腳本所在的文檔根目錄。在服務器配置文件中定義。
$_SERVER['HTTP_ACCEPT'] #當前請求的 Accept: 頭部的內容。
$_SERVER['HTTP_ACCEPT_CHARSET'] #當前請求的 Accept-Charset: 頭部的內容。例如:「iso-8859-1,*,utf-8」。
$_SERVER['HTTP_ACCEPT_ENCODING'] #當前請求的 Accept-Encoding: 頭部的內容。例如:「gzip」。
$_SERVER['HTTP_ACCEPT_LANGUAGE']#當前請求的 Accept-Language: 頭部的內容。例如:「en」。
$_SERVER['HTTP_CONNECTION'] #當前請求的 Connection: 頭部的內容。例如:「Keep-Alive」。
$_SERVER['HTTP_HOST'] #當前請求的 Host: 頭部的內容。
$_SERVER['HTTP_REFERER'] #鏈接到當前頁面的前一頁面的 URL 地址。
$_SERVER['HTTP_USER_AGENT'] #當前請求的 User_Agent: 頭部的內容。
$_SERVER['REMOTE_ADDR'] #正在瀏覽當前頁面用戶的 IP 地址。
$_SERVER['REMOTE_HOST'] #正在瀏覽當前頁面用戶的主機名。
$_SERVER['REMOTE_PORT'] #用戶連接到服務器時所使用的端口。
$_SERVER['SCRIPT_FILENAME'] #當前執行腳本的絕對路徑名。
$_SERVER['SERVER_ADMIN'] #管理員信息
$_SERVER['SERVER_PORT'] #服務器所使用的端口
$_SERVER['SERVER_SIGNATURE'] #包含服務器版本和虛擬主機名的字符串。
$_SERVER['PATH_TRANSLATED'] #當前腳本所在文件系統(不是文檔根目錄)的基本路徑。
$_SERVER['SCRIPT_NAME'] #包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
$_SERVER['REQUEST_URI'] #訪問此頁面所需的 URI。例如,「/index.html」。
$_SERVER['PHP_AUTH_USER'] #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是用戶輸入的用戶名。
$_SERVER['PHP_AUTH_PW'] #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是用戶輸入的密碼。
$_SERVER['AUTH_TYPE'] #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是認證的類型。

測試

echo "PHP_SELF : " . $_SERVER['PHP_SELF'] . "<br />";
echo
"GATEWAY_INTERFACE : " . $_SERVER['GATEWAY_INTERFACE'] . "<br />";
echo
"SERVER_ADDR : " . $_SERVER['SERVER_ADDR'] . "<br />";
echo
"SERVER_NAME : " . $_SERVER['SERVER_NAME'] . "<br />";
echo
"SERVER_SOFTWARE : " . $_SERVER['SERVER_SOFTWARE'] . "<br />";
echo
"SERVER_PROTOCOL : " . $_SERVER['SERVER_PROTOCOL'] . "<br />";
echo
"REQUEST_METHOD : " . $_SERVER['REQUEST_METHOD'] . "<br />";
echo
"REQUEST_TIME : " . $_SERVER['REQUEST_TIME'] . "<br />";
echo
"REQUEST_TIME_FLOAT : " . $_SERVER['REQUEST_TIME_FLOAT'] . "<br />";
echo
"QUERY_STRING : URL參數" . $_SERVER['QUERY_STRING'] . "<br />";
echo
"DOCUMENT_ROOT : " . $_SERVER['DOCUMENT_ROOT'] . "<br />";
echo
"HTTP_ACCEPT : " . $_SERVER['HTTP_ACCEPT'] . "<br />";
echo
"HTTP_ACCEPT_CHARSET : " . $_SERVER['HTTP_ACCEPT_CHARSET'] . "<br />";
echo
"HTTP_ACCEPT_ENCODING : " . $_SERVER['HTTP_ACCEPT_ENCODING'] . "<br />";
echo
"HTTP_ACCEPT_LANGUAGE : " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "<br />";
echo
"HTTP_CONNECTION : " . $_SERVER['HTTP_CONNECTION'] . "<br />";
echo
"HTTP_HOST : " . $_SERVER['HTTP_HOST'] . "<br />";
echo
"HTTP_REFERER : " . $_SERVER['HTTP_REFERER'] . "<br />";
echo
"HTTP_USER_AGENT : " . $_SERVER['HTTP_USER_AGENT'] . "<br />";
echo
"HTTPS : " . $_SERVER['HTTPS'] . "<br />";
echo
"REMOTE_ADDR : " . $_SERVER['REMOTE_ADDR'] . "<br />";
echo
"REMOTE_HOST : " . $_SERVER['REMOTE_HOST'] . "<br />";
echo
"REMOTE_PORT : " . $_SERVER['REMOTE_PORT'] . "<br />";
echo
"REMOTE_USER : " . $_SERVER['REMOTE_USER'] . "<br />";
echo
"REDIRECT_REMOTE_USER : " . $_SERVER['REDIRECT_REMOTE_USER'] . "<br />";
echo
"SCRIPT_FILENAME : " . $_SERVER['SCRIPT_FILENAME'] . "<br />";
echo
"SERVER_ADMIN : " . $_SERVER['SERVER_ADMIN'] . "<br />";
echo
"SERVER_PORT : " . $_SERVER['SERVER_PORT'] . "<br />";
echo
"SERVER_SIGNATURE : " . $_SERVER['SERVER_SIGNATURE'] . "<br />";
echo
"PATH_TRANSLATED : " . $_SERVER['PATH_TRANSLATED'] . "<br />"

echo "PHP_SELF : " . $_SERVER['PHP_SELF'] . "<br />";
echo
"SCRIPT_NAME : " . $_SERVER['SCRIPT_NAME'] . "<br />";
echo
"REQUEST_URI : " . $_SERVER['REQUEST_URI'] . "<br />";
echo
"PHP_AUTH_DIGEST : " . $_SERVER['PHP_AUTH_DIGEST'] . "<br />";
echo
"PHP_AUTH_USER : " . $_SERVER['PHP_AUTH_USER'] . "<br />";
echo
"PHP_AUTH_PW : " . $_SERVER['PHP_AUTH_PW'] . "<br />";
echo
"AUTH_TYPE : " . $_SERVER['AUTH_TYPE'] . "<br />";
echo
"PATH_INFO : " . $_SERVER['PATH_INFO'] . "<br />";
echo
"ORIG_PATH_INFO : " . $_SERVER['ORIG_PATH_INFO'] . "<br />";







php 根目錄

$protocol = strpos($_SERVER['SERVER_SIGNATURE'], '443') !== false ? 'https://' : 'http://';
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
參考資料
http://stackoverflow.com/questions/2424606/get-webroot-in-php





參考資料:
http://blog.xuite.net/trully.hsiang/man/26168821
http://php.net/manual/zh/reserved.variables.server.php

2013年10月7日 星期一

javascript document.getElementById

var txt = mykey;
document.form2.mykey.value = "";
document.getElementById(txt).value = "te";
document.getElementById("mykey").value = "te";

2013年10月3日 星期四

php 數字補零 str_pad()

str_pad()

<?php
$input 
"Alien";
echo 
str_pad($input10);    // produces "Alien     "

echo str_pad($input10"-="STR_PAD_LEFT);  // produces "-=-=-Alien"
echo str_pad($input10"_"STR_PAD_BOTH);   // produces "__Alien___"
echo str_pad($input"___");               // produces "Alien_"
?>




 INT(5) ZEROFILL
存入數字 4,在顯示其資料時,是「00004」。


參考資料:
http://blog.hsin.tw/2009/php-pad-a-string/
http://tw2.php.net/str_pad


http://chensh.loxa.edu.tw/php/C_2.php

2013年9月28日 星期六

javascript 呼叫 php 變數

<scrip>
function checkacc(user){

<?php
do{
?>
if(user == '<?php echo $row_myusers["user_name"]; ?>'){
document.target.user_name.value = '帳號重複!';
document.target.user_name.style.color = '#FF0000';
return false;
}
<?php
} while($row_myusers = mysql_fetch_assoc($myusers));
?>
}
</scrip>



<input type="text" name="user_name" id="user_name" class="text03" onfocus="this.style.color = '#000000'" onblur="checkacc(this.value);" />

<input name="send1" type="submit" id="send1" onclick="if(document.target.user_name.value == '帳號重複!'){alert('*請輸入使用者帳號');return false;}"value="送出"  />



2013年9月26日 星期四

javascript 彈出視窗confirm( ) ? web2 : web1

<?php
    if((isset($_POST["MM_del"])) && ($_POST["MM_del"] == "false")) { //如果確認視窗為false(取消)
   header("Location: 現在網址web1");
    }
?>


<form method="POST" name="form2" id="form2" action="">
<input type="submit" name="del_que" id="del_que"  value="刪除" onClick="if(!confirm('Are you sure?')){document.form2.MM_del.value='false';}" />
<input type="hidden" name="myid" id="myid" value="1" />
        <input type="hidden" name="MM_del" value="form2">
</form>



參考資料:
http://taiwantc.com/js/js_tut_b_window0.htm

http://easonyo.pixnet.net/blog/post/25035463-javascript-%E5%BD%88%E5%87%BA%E5%B0%8F%E8%A6%96%E7%AA%97










http://blog.xuite.net/lqru17/blog/26134841-%E5%AD%90%E8%A6%96%E7%AA%97%E5%82%B3%E5%80%BC%E7%B5%A6%E6%AF%8D%E8%A6%96%E7%AA%97%E5%BE%8C%E5%AD%90%E8%A6%96%E7%AA%97%E9%97%9C%E9%96%89

2013年9月23日 星期一

PHP+javascript 動態時間 setInterval( )


setInterval("document.getElementById('mytime').innerText=GetTime().toString()",1000);


參考資料:

setInterval( )
http://blog.darkthread.net/post-2011-12-13-js-getyear-in-ie.aspx


getFullYear()
http://www.seocn.info:999/import/description_4814_Detailed.html

2013年9月4日 星期三

HTML text 輸入限制

限輸入數字

<input type="text" onKeyUp="this.value=this.value.replace(/\D/g,'')" />
this.value=this.value.replace(/[^0-9]/g,'')
.replace(/[^\d]/g,'')



允許數字 . (點)
this.value=this.value.replace(/[^0-9.]/g,'')





[時間格式 Y-m-d H:i:s ]  允許數字及 : (冒號) 及  -  (減號)    
this.value=this.value.replace(/[^\d\s:-]/g,'')
this.value.replace(/[^\d&:&-]/g,'')
[電話格式 ]
this.value=this.value.replace(/[^\d&-]/g,'')






允許中文
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">


<input type="text" style="ime-mode:disabled">








清空文字
onfocus="if(this.value == '請輸入關鍵字'){  this.value=''; };"








去空白
onblur="this.value=this.value.trim();"






ps.  PHP   trim( String );
       str_replace(" ", "", String);    //去除(取代)全型空白











參考資料
http://blog.kkbruce.net/2012/02/javascript-regular-expression.html#.Um8YaBBi1Mc
http://blog.sina.com.cn/s/blog_9d37865901016ch3.html
http://blog.fend.cn/archives/54.html
http://blog.xuite.net/zong36/home/63327602-PHP-%E6%AD%A3%E5%89%87%E8%A1%A8%E7%A4%BA%E6%B3%95%28%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%A4%BA%E6%B3%95%29
http://www.webpage.idv.tw/maillist/maillist4/pro/05/regular1.htm    正規表示法圖說
http://www.eion.com.tw/Blogger/?Pid=1047
http://calos-tw.blogspot.tw/2007/12/javascript.html

CSS 兩張圖重疊


<style type="text/css">
<!--
#IMG_1{
 position:absolute;
 top:10px;
 left:10px;
 width:150px;
 height:150px;
 background-color:#53E355;
 z-index:1;
}
#IMG_2{
 position:absolute;
 top:30px;
 left:30px;
 width:150px;
 height:150px;
 background-color:#6DA9E7;
 z-index:2;
}
-->
</style>

<img scr="IMG_1" id="IMG_1">
<img scr="IMG_2" id="IMG_2">



參考資料:
http://www.wibibi.com/info.php?tid=312

2013年9月3日 星期二

lighbox光箱效果

  1. <script src="js/jquery-1.10.2.min.js"></script> <script src="js/lightbox-2.6.min.js"></script>
  2. <link href="css/lightbox.css" rel="stylesheet" />
  3. 一群組 <a href="img/image-2.jpg" data-lightbox="roadtrip">image #2</a> <a href="img/image-3.jpg" data-lightbox="roadtrip">image #3</a> <a href="img/image-4.jpg" data-lightbox="roadtrip">image #4</a>
<a href="img/image-1.jpg" data-lightbox="image-1" title="My caption">image #1</a>


參考資料:
http://lokeshdhakar.com/projects/lightbox2/
http://prog-octopus.blogspot.tw/2009/01/lightbox2.html

2013年8月29日 星期四

PHP Mysql 顯示textarea換行顯示



 方法1:
使用 str_replace 函數將 ASCII 13 與 10 置換為 <BR>

 $demo_text = str_replace( chr(13).chr(10), "<br>", $demo_text );

 方法2:
 nl2br($row_rsData['content']);


 參考網址
http://jikky.pixnet.net/blog/post/18623999-php%E7%B6%B2%E9%A0%81%E4%B8%AD,-%E8%87%AA%E5%8B%95%E6%9B%BF%E6%8F%9B%E7%B4%94%E6%96%87%E5%AD%97%E5%85%A7%E5%AE%B9%E6%8F%9B%E8%A1%8C%E9%A1%AF%E7%A4%BA%E7%9A%84%E6%96%B9
http://chensh.loxa.edu.tw/php/X_8.php
http://www.w3school.com.cn/php/func_string_str_replace.asp

2013年8月26日 星期一

清單


ul{
    list-style-type:none;
    padding-left: 20px;
    line-height: 18px;
    padding-right: 15px;
}
ul a{
    text-decoration: none;
    color: #D2DDFF;
}
li{
    background-image: url(../img/news_icon_04.png);
    background-repeat: no-repeat;
    background-position:0 0.5em;
    padding-left:15px;
}

.font001{/*資料title*/
    font-family: "新細明體";
    font-size: 12px;
    color: #D2DDFF;
  
    width: 320px;
    word-wrap:break-word;  /* 自動換行*/
    overflow:hidden;
    display: table-cell;  /*區塊顯示─表格-儲存格*/
    background-color: #996666;
}
.font002{/*日期*/
    font-size: 10px;
    color: #B6CDFF;
  
    width: 60px;
    text-align: right;
    background-color: #006666;
    display: table-cell; /*區塊顯示─表格-儲存格*/
}


<ul id="vertical-ticker">
           <li>   
               <span class="font001"><a href="#">A01</a></span>               
               <span class="font002">A02</span>
           </li>   
           <li>   
               <span class="font001"><a href="#">B01</a></span>               
               <span class="font002">B02</span>
           </li>                                                                                 
 </ul>   


ps.ul會有預設邊框


顯示方式
  • XXXXXXXXXXXXXX
  • XXXXXXXXXXXXXX



參考資料
http://foreverahow.blogspot.tw/2008/09/css.html

2013年8月25日 星期日

PHP readfile


  • <php.ini>   include path指定路徑
  1. $line = file( 'XX.htm'檔案路徑 )    [array]
    1. foreach( $line as $num => $line )         $num行數
    2. htmlspecialchars($line)  反斜線特殊字元
  2. $content = file_get_contents('XXX.htm檔案路徑')
    1. strip_tags($content)  去除標籤
  3. 寫入檔   $filesize = file_put_contents("xx.txt檔案路徑", $content字串, [狀態指標1|狀態指標2])
    1. [狀態指標]
      • [1]     FILE_USE_INCLUDE_PATH 指定路徑開啟指定檔案
      • FILE_APPEND  將字串寫入檔案內容後方
      • LOCK_EX    寫入時先鎖定檔案,防止同時被寫入
  4. read and output    
    1. is_readable(檔案路徑)
    2. readline(檔案路徑, [ ])
  5. file open
    1. fopen(檔案路徑, 開啟模式 [, ])
      • 檔案路徑
        • 使用$_SERVER['DOCUMENT_ROOT'](在本機記得將"/"改為"\\",直接上線的就不用)
        • C:\\htdocs\\...
        • http://www.abc.com/..
      • 開啟模式
        • r :開啟唯讀檔
        • r+:開啟為可讀寫檔
        • w:寫入檔。先清空再寫入。檔不在則新增
        • w+:讀寫檔。先清空再寫入。檔不在則新增
        • a:寫入檔。寫在檔案尾端。檔不在則新增
        • a+:讀寫檔。寫在檔案尾端。檔不在則新增
    2. fclose(資源)    return True/Flase
  6. flock(資源$file, 鎖定方式 [,])
    1. 鎖定方式
      • LOCK_SH 唯讀
      • LOCK_EX 獨占,寫入
      • LOCK_UN 解除唯讀
      • LOCK_NB 排它性鎖定   (若已被鎖,no wait and pass)
  7. fputs(資源, 字串)
  8. fwrite(資源, 字串)
  9. fgetc(資源)   每讀一字元回傳,到底回傳false
  10. fgets(資源)   每讀一行資料回傳,到底回傳false 
  11. fpassthru(資源)   讀取並顯示在頁面,自動關閉
  12. stream_get_contents(資源)   讀取並顯示在頁面,需用fclose( )關閉

  1. fread(資源, 檔案大小)      可讀取二進位檔,ex:圖檔
    1. fopen(檔案, "rb")
    2. echo fread(檔案, filesize(檔案));
    3. fclose(檔案)
  2. ftell(資源)  return 目前指標位置
  3. feof(資源) 是否到達檔案底部  T/F
  4. rewind(資源) 檔案關閉前,指標移至開啟的地方(開頭)
  5. fssek(資源, 移動值, [起始位置])
    1. 設定值
    • SEEK_SET 檔案開始,預設
    • SEEK_CUR 現在位置
    • SEEK_END 檔案底部
readfile( );


$logs_file = fopen($_SERVER['DOCUMENT_ROOT']."/support/logs.txt","a");
fwrite($logs_file, "寫入檔案。");
fclose($logs_file);



檔案是否存在
http://www.hkcode.com/programming/601

2013年8月24日 星期六

PHP - upload file

file_uploads = On
upload_tmp_dir = "C:\Windows\Temp"     [ = "tmp"    Linux]


  1. <form action="接收檔.php" method="post" enctype="multipart/form-data">  [傳送資料的編碼方式]
  2. 單一/多檔 上傳
    1. <input type="file" name="fileUpload">
    2. <input type="file" name="fileUpload[ ]">
  3. 暫存檔資訊
    1. $_FILES["欄位名稱"]["tmp_name"]   取得暫存檔名稱
    2. $_FILES["欄位名稱"]["name"]   取得原本名稱
    3. $_FILES["欄位名稱"]["type"]   取得檔案類型[text/plain]、[image/pjpeg]
    4. $_FILES["欄位名稱"]["size"]   取得檔案大小
    5. $_FILES["欄位名稱"]["error"]   取得錯誤碼
      • [ 0 ]UPLOAD_ERR_OK 上傳成功
      • [ 1 ]UPLOAD_ERR_INI_SIZE 檔案大於<php.ini>中設定upload_max_filesize的最大上傳檔案大小
      • [ 2 ]UPLOAD_ERR_FROM_SIZE 檔案大於表單(form)能傳送的大小MAX_FILE-SIZE
      • [ 3 ]UPLOAD_ERR_PARTIAL 只有部分檔案被上傳
      • [ 4 ]UPLOAD_ERR_NO_FILE 檔案沒有被上傳
      • [ 5 ]UPLOAD_ERR_NO_TMP_DIR 沒有設定/找不到  暫存檔案夾
      • [ 6 ]UPLOAD_ERR_CANT_WRITE 檔案寫入磁碟失敗
  4. move_upload_file( 暫存檔名稱, 目的路徑及檔名 )       "./".FILES[ ][ ]
  5. 多檔   二維陣列    $_FILES["欄位名稱"]["tmp_name"][$i]       
    1. 一維:$_FILES["欄位名稱"]["tmp_name"]     
    2. 二維:[$i]





  • 注意表單 form 需要加上 enctype="multipart/form-data" 代表你要上傳檔案
  • utf-8 編碼網頁無法在 big5 系統正確處理中文檔名,原因在於 move_uploaded_file() 不能處理 utf-8 中文編碼,需利用 iconv() 函數作轉碼,解決方法如下:
    • 請將
    • move_uploaded_file($_FILES['myfile']['tmp_name'], $uploadfile)
    • 改為
    • move_uploaded_file($_FILES['myfile']['tmp_name'], iconv("utf-8", "big5", $uploadfile))
參考資料:


2013年8月19日 星期一

CSS 固定欄寬 自動斷行

.table01{
    width:650px;
    table-layout:fixed;  /*固定欄寬*/
    word-wrap:break-word;  
    overflow:hidden;
 }
/*欄位寬也要設定*/
.table th{
    width:200px;
}
 .table td{
   450px;
}

---------------------------------------------------

.div01{
    width:650px;
    word-wrap:break-word;  
    overflow:hidden;
}



1. word-wrap: 單字換行
2. word-break: 斷字的方法,用於長字串








參考資料:
http://www.dugukeji.com/mb/divcssjiaocheng/16639.html
http://hihicharles.blogspot.tw/2010/12/css-word-wrap.html

2013年8月17日 星期六

Xampp - Apache

Method :
1.暫時關閉IIS
2.apache\conf下的“httpd.conf”文件来修改XAMPP使用的port


●http://localhost/phpmyadmin/ 如果修權限修改
  需在C:\xampplite\phpMyAdmin\config.inc.php  修改


參考網址:
http://www.97world.com/archives/2270


http://elaine-iic.blogspot.tw/2013/03/iis7apache.html   共存

Windows7上IIS7.5與XAMPP 的port冲突的解决方法:http://www.duote.com/tech/4/11179.html

Xampp中Apache無法啟動的解决方法:http://www.itstudy.cn/www/article/article.asp?id=7

Win7 XAMPP apache無法啟動的问题:http://www.cnblogs.com/likwo/archive/2011/08/01/2123937.html