xml post로 보내고, 받아 처리

렛츠웹 + 게임/My Tip 2009. 6. 15. 14:23

XML POST 로 보내고 받아 처리 하는 소스
php.ini에서 always_populate_raw_post_data = On 
ini_set("always_populate_raw_post_data", "true");

보내는
<?php

    /*--------------샘플 XML ---------------
<?xml version="1.0" encoding="EUC-KR"?>
<INFO>
 <CONTENT>
  <command>add</command>
  <KEY>
   <enswer_id>123</enswer_id>
  </KEY>
  <META>
   <title>kim</title>
   <director>tae</director>
  </META>
  <LICENSE>
   <CP>
    <name>jum</name>
    <content_id>jjang</content_id>
   </CP>   
  </LICENSE>
 </CONTENT>
 <CONTENT>
  <command>add</command>
  <KEY>
   <enswer_id>456</enswer_id>
  </KEY>
  <META>
   <title>kim2</title>
   <director>tae2</director>
  </META>
  <LICENSE>
   <CP>
    <name>jum2</name>
    <content_id>jjang2</content_id>
   </CP>   
  </LICENSE>
 </CONTENT> 
</INFO>
    --------------------------------------*/

    // XML 데이터 생성 - 페이지 인코딩이 euc-kr이라 iconv로 UTF-8 형식으로 변환
    $go_xml  = '<?xml version="1.0" encoding="EUC-KR"?>
<INFO>
 <CONTENT>
  <command>add</command>
  <KEY>
   <enswer_id>123</enswer_id>
  </KEY>
  <META>
   <title>kim</title>
   <director>tae</director>
  </META>
  <LICENSE>
   <CP>
    <name>jum</name>
    <content_id>jjang</content_id>
   </CP>   
  </LICENSE>
 </CONTENT>
 <CONTENT>
  <command>add</command>
  <KEY>
   <enswer_id>456</enswer_id>
  </KEY>
  <META>
   <title>kim2</title>
   <director>tae2</director>
  </META>
  <LICENSE>
   <CP>
    <name>jum2</name>
    <content_id>jjang2</content_id>
   </CP>   
  </LICENSE>
 </CONTENT>  
</INFO>';


    // fsock으로 POST 전송
    $host = '222...'; //'ip또는 도메인';
    $path = '/파일명.php';
    $xmlData = $go_xml;


    // 헤더를 설정해서 POST로 전송
    $fp = fsockopen($host, '80', $errno, $errstr, 30);
    if($fp)
    {

      $header  = "POST ".$path." HTTP/1.1\r\n";
      $header .= "Host: ".$host."\r\n";
      $header .= "User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n";
      $header .= "Content-type: text/html\r\n";
      $header .= "Content-length: ".strlen($xmlData)."\r\n\r\n";
      $header .= $xmlData."\r\n";

       fputs($fp, $header.$xmlData."\r\n\r\n");

       while(!feof($fp))
      {
           $result .= fgets($fp, 1024);
       }

        fclose($fp);

        echo $result; // 결과를 출력한다.

    }

?>

받는

<?php    
  // raw_post_data 설정
    ini_set("always_populate_raw_post_data", "true");
    // xml 데이터를 받는다
    $receive_xml = $GLOBALS['HTTP_RAW_POST_DATA'];


    /*--------------------------------------
     * XML Parse - simple_XML
    ----------------------------------------*/

    $dom = new DOMDocument;
    $dom->loadXML($receive_xml);

    if (!$dom) {
        echo 'Error while parsing the document';
        exit;
    }
 
    $XML = simplexml_import_dom($dom);

  echo"<pre>";
  print_r($XML);

  $CONTENT=$XML->CONTENT;
  $count = count($CONTENT);
  for($i=0;$i<$count;$i++)
  {
   $command   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->command);
     $enswer_id   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->KEY->enswer_id);
     $title   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->META->title);
     $director   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->META->director);
     $name   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->LICENSE->CP->name);
     $content_id   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->LICENSE->CP->name);
     echo "<br>enswer_id-$enswer_id-$title-$director-$name-$content_id <br>";
    }
?>

'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

추천 아이폰 무료 어플 2.  (0) 2010.01.27
추천 아이폰 무료 어플 1.  (0) 2010.01.27
익스플로러에서 xml 유효성 체크  (0) 2009.04.09
RIP와 IGRP  (0) 2009.01.22
IP 할당 체계와 IP 신청 방법  (0) 2009.01.22
posted by 망차니

설정

트랙백

댓글

타서버 특정 폴더에 있는 다수의 파일들을 우리서버에 저장하고 해당 파일들을 읽어서 정보를 처리한다

렛츠웹 + 게임/My Tip 2009. 1. 5. 17:25
1) 접속하여 해당 폴더에 파일들을 읽고 가져와서 우리쪽에 저장한다
<?

include("/data/common/mw.func.inc.php");

    $ftp_server = "";
    $ftp_user = "";
    $ftp_pass = "";
    $ftproot ="/www/idconv/MOVIE";
   
// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// try to login
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Connected as $ftp_user@$ftp_server\n";
} else {
    echo "Couldn't connect as $ftp_user\n";
}

// turn passive mode on
ftp_pasv($conn_id, true);

$files = ftp_nlist($conn_id, ".");

echo "<pre>";
print_r($files);

for($i=0;$i<sizeof($files);$i++)
{

    $x_n=$files[$i];
    echO "$x_n <br>";
    $local_file='/data/product/'.$x_n;
    $server_file=$x_n;
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
            echo "Successfully written to $local_file<br>";
    } else {
        echo "There was a problem $local_file <br>";
    }
/*
    if (ftp_delete($conn_id, $x_n)) {
        echo "$file deleted successful $x_n<br><br>";
    } else {
         echo "could not delete $x_n<br><br>";
    }   
*/

}

?>




2) 해당 폴더에 파일들을 읽어서 처리 한다
<?

include("/data/common/mw.func.inc.php");

$dir ="/data/product"; //절대경로

$files = scandir($dir);//$files-배열형태로파일명을 가지고 있음

for($i=2;$i<sizeof($files);$i++)
{
    $x_n=$files[$i];
    $fn=$dir.'/'.$x_n;
    echo "$i $fn------------------------------------------------------------------<br>";
    $f_p=fopen($fn,'r');

    unset($str);
    unset($arr);
    while(!feof($f_p))
    {
        $str = fgets($f_p,10000);
        $arr[]=chop($str);
    }
   
    for($k=0;$k<sizeof($arr);$k++)
    {
        //$arrr[$i][$k][1]=='SUCC';
        if($arr[$k]!='')
        {
            $arrr[$i][$k]=explode('|',$arr[$k]);

/*        */
            $q="select * from copyright_contentid where ContentID='".$arrr[$i][$k][1]."'";
            echo "$q<br>";
            $row=MW_FETCH_ONE($q,$CONN[master]);
            if($row[ContentID]!='')
            {
                $N_price=$arrr[$i][$k][3];
                if($row[Price]!=$N_price)
                {
                    $qq="update oncx_copyright_contentid set Price=$arrr[$i][$k][3] where ContentID='$arrr[$i][$k][1]'";
                    echo "$qq<br>";
                }else{
                    echo"$row[Price] != $N_price <br>";
                }
            }else{
                $qqq="insert into oncx_copyright_contentid (ContentID,Title,Price,Author,Writer) values
                       ('".$arrr[$i][$k][1]."','".$arrr[$i][$k][7]."','".$arrr[$i][$k][3]."','kth','kth')";
                    echo "$qqq<br>";
            }
/* */

        }
    }   
    fclose($f_p);
   
    if(!@unlink($fn))
    {
        dile('오류:파일삭제실패');
    }else{
        echo" <br> 삭제성공 $fn <br>";
    }
}   

?>


posted by 망차니

설정

트랙백

댓글

디렉토리에서 파일 목록 추출해서 돌리고 삭제하기

렛츠웹 + 게임/My Tip 2009. 1. 5. 17:06

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">

</head>
<body>
<?
require_once "/data/common/common.inc.php";
unset($data);
unset($stack);
$stack = array();
function startTag($parser, $name, $attrs)
{
   global $stack;
   $tag=array("name"=>$name,"attrs"=>$attrs); 
   array_push($stack,$tag);

 
}

function cdata($parser, $cdata)
{
   global $data_xml,$stack,$top,$s_result,$data,$file;
   
    if(trim($cdata))
    {    
        $stack[count($stack)-1]['cdata']=$cdata;   
    }
}

function endTag($parser, $name)
{
   global $data_xml,$stack,$top,$s_result,$data,$file;
   $stack[count($stack)-2]['children'][] = $stack[count($stack)-1];
   array_pop($stack);
}

function search_go($xml_name)
{
 global $data_xml,$stack,$top,$s_result,$data,$file;

 $sp[host]="news.sunzio.com"; //domain or ip
 $port=80;
 $sp[path] = "/cron/aving/".$xml_name.'.xml'; //디렉토리 경로.

 //echo "$sp[host]$sp[path]<br>";
 
 $fsp = fsockopen ("$sp[host]",  $port, $errno, $errstr, 30);
 if (!$fsp)
 {
     echo "$errstr ($errno)<br>\n";
 }
 else
 {

   $refer = "Referer: $referer\r\n";
   
   $request.="GET ".$sp[path]." HTTP/1.0\r\n";
   $request.="Accept: */*\r\n";
   $request.="Accept: ko\r\n";
   $request.="Accept-Encoding: gzip, deflate\r\n";
   $request.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2; .NET CLR 1.1.4322)\r\n";
   $request.="Host: ".$sp["host"]."\r\n";
   $request.=$refer;
   $request.="Content-type: application/x-www-form-urlencoded\r\n";
   $request.="Connection: close\r\n";
   $request.="\r\n";
    
 
   fputs($fsp , $request);
 

  while(! feof ($fsp))
  { // 데이터 저장 
   $file .= fgets ($fsp, 1024);
  }

  //$file = 'simple.xml';
 
  $tmp = explode('<?xml version="1.0" encoding="euc-kr"?>',$file);
   
  $file = '<?xml version="1.0" encoding="euc-kr"?>' . $tmp[1];
 
  $xml_parser = xml_parser_create();
  xml_set_element_handler($xml_parser, "startTag", "endTag");
  xml_set_character_data_handler($xml_parser, "cdata");
   
  //$data = xml_parse($xml_parser,file_get_contents($file));
  $data = xml_parse($xml_parser,$file);

  if(!$data) {
     die(sprintf("XML error: %s at line %d",
  xml_error_string(xml_get_error_code($xml_parser)),
  xml_get_current_line_number($xml_parser)));
  }
    

  xml_parser_free($xml_parser);

 
 } 


     fclose ($fsp);
     
 $top =$stack[0][children];
 return $top;

}
$dir ="/data/news/cron/aving"; //절대경로
$files = scandir($dir);//$files-배열형태로파일명을 가지고 있음
for($i=2;$i<sizeof($files);$i++)
{
 $x_n=$files[$i];
 $x_ne=explode('.',$x_n);
 $xml_name=$x_ne[0];
 //echo"$xml_name ----<br>"; 
 $re=search_go($xml_name);
 
 $k=sizeof($top)-1;
 
 $seq='aivng'.$top[1][cdata]; //뉴스넘버 seq
 $sub=addslashes(trim(iconv("UTF-8", "EUC-KR ",substr($top[7][cdata],0,200)))); //서브타이틀
 $nd=$top[4][cdata]; //날짜년월일까지만
 $tp=$top[8][attrs][CODE];  //카테고리 코드
 $cate=trim(iconv("UTF-8", "EUC-KR ",$top[8][attrs][NAME]));  // 카테고리 네임
 $title=addslashes(trim(iconv("UTF-8", "EUC-KR ",$top[3][cdata])));//제목
 
 $imageurl=$top[9][attrs][HREF]; //이미지1
 $imageurl2=$top[10][attrs][HREF]; //이미지1
 $imageurl3=$top[11][attrs][HREF]; //이미지1
 $imageurl4=$top[12][attrs][HREF]; //이미지1
 
 $url=$top[$k][attrs][HREF];//url
 $reg_dt=$top[4][cdata].' '.$top[5][cdata];//기사일자 년월일시분초
 $content=addslashes(trim(trim(iconv("UTF-8", "EUC-KR ",$top[7][cdata]))));//내용

echo "<br>=====================================<br>
$k<br>
$x_n <br>
seq      ==>      $seq<br>
nd       ==>       $nd<br>
tp       ==>       $tp<br>
cate     ==>     $cate <br>
title    ==>    $title<br>
imageurl ==> $imageurl<br>
imageurl2 ==> $imageurl2<br>
imageurl3 ==> $imageurl3<br>
imageurl4 ==> $imageurl4<br>
url      ==>      $url<br>
reg_dt   ==>   $reg_dt <br>
";
 $cq="select cate_code2,cate_name from news.category where cate_code='$tp'";
 $c_c=MW_FETCH_ONE($cq,$CONN[news]);
 
 $qc="select seq from news.NEWS where seq='$seq' and tp='$c_c[cate_code2]'";///////////이미들어가있는기사인지체크
 //echo "$qc <br>";
 $b_z=MW_RESULT_ONE($qc,$CONN[news]);
 if(empty($b_z))
 {
  $q="insert into news.NEWS (tp,seq,cate,title,subtitle,ndate,imageurl,imageurl2,imageurl3,imageurl4,url,reg_dt,content)
   values ('$c_c[cate_code2]','$seq','$c_c[cate_name]','$title','$sub','$nd','$imageurl','$imageurl2','$imageurl3','$imageurl4','$url','$reg_dt','$content')";
  MW_QUERY($q,$CONN[news]);
 }

 $filen=$dir.'/'.$x_n;
 ftp_del($filen);


unset($data);
unset($stack);
$stack = array();
unset($data_xml);
unset($top);
unset($s_result);
unset($data);
unset($file);


}
//이미지 서버 엡튀피 연결
function ftp_con()
{
 global $_SET;

 $ftp_server = "";
 $ftp_user = "";
 $ftp_pass = "";

 // set up a connection or die
 $conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

 // try to login
 if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
  echo "Connected as $ftp_user@$ftp_server\n";
 } else {
  echo "Couldn't connect as $ftp_user\n";
 }
 return $conn_id;
}
//ftp 파일 삭제
function ftp_del($del_file)
{
 if ($del_file != "")
 {
  $conn_id = ftp_con();

  @ftp_delete($conn_id, $del_file);

  ftp_close($conn_id);
 }
}
?>
</body>
</html>


'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

이미지플로팅 핫베스트등  (0) 2009.01.05
트리메뉴  (0) 2009.01.05
ftp 접속하고 목록 뽑아서 파일 복사해오기  (0) 2009.01.05
계급아이콘,아바타  (0) 2009.01.05
보드생성 관리 소스  (0) 2009.01.05
posted by 망차니

설정

트랙백

댓글

ftp 접속하고 목록 뽑아서 파일 복사해오기

렛츠웹 + 게임/My Tip 2009. 1. 5. 17:04

<?

$ftp_server = "";
$ftp_user = "";
$ftp_pass = "";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// try to login
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
 //echo "Connected as $ftp_user@$ftp_server\n";
} else {
 echo "Couldn't connect as $ftp_user\n";
}


// turn passive mode on
ftp_pasv($conn_id, true);


$files = ftp_nlist($conn_id, "/");


for($i=0;$i<sizeof($files);$i++)
{

 $x_n=$files[$i];
 //echO "$x_n <br>";
 $local_file='/data/news/cron/aving/'.$x_n;
 $server_file=$x_n;
 if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
      echo "Successfully written to $local_file<br>";
 } else {
     echo "There was a problem $local_file <br>";
 }
 
 if (ftp_delete($conn_id, $x_n)) {
  echo "$file deleted successful $x_n<br><br>";
 } else {
   echo "could not delete $x_n<br><br>";
 } 

}

?>


'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

트리메뉴  (0) 2009.01.05
디렉토리에서 파일 목록 추출해서 돌리고 삭제하기  (0) 2009.01.05
계급아이콘,아바타  (0) 2009.01.05
보드생성 관리 소스  (0) 2009.01.05
[Mysql] FEDERATED Tables (DB Link)  (0) 2009.01.05
posted by 망차니

설정

트랙백

댓글

보드생성 관리 소스

렛츠웹 + 게임/My Tip 2009. 1. 5. 17:02

'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

ftp 접속하고 목록 뽑아서 파일 복사해오기  (0) 2009.01.05
계급아이콘,아바타  (0) 2009.01.05
[Mysql] FEDERATED Tables (DB Link)  (0) 2009.01.05
urlencode urldecode  (0) 2009.01.05
위로 스크롤 되는 배너  (0) 2009.01.05
posted by 망차니

설정

트랙백

댓글

urlencode urldecode

렛츠웹 + 게임/My Tip 2009. 1. 5. 16:57

//urlencode
function URLEncode(txt)
{
 // The Javascript escape and unescape functions do not correspond
 // with what browsers actually do...
 var SAFECHARS = "0123456789" +     // Numeric
     "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetic
     "abcdefghijklmnopqrstuvwxyz" +
     "-_.!~*"()";     // RFC2396 Mark characters
 var HEX = "0123456789ABCDEF";

 var plaintext = txt;
 var encoded = "";
 for (var i = 0; i < plaintext.length; i++ ) {
  var ch = plaintext.charAt(i);
     if (ch == " ") {
      encoded += "+";    // x-www-urlencoded, rather than %20
  } else if (SAFECHARS.indexOf(ch) != -1) {
      encoded += ch;
  } else {
      var charCode = ch.charCodeAt(0);
   if (charCode > 255) {
       alert( "Unicode Character ""
                        + ch
                        + "" cannot be encoded using standard URL encoding.n" +
              "(URL encoding only supports 8-bit characters.)n" +
        "A space (+) will be substituted." );
    encoded += "+";
   } else {
    encoded += "%";
    encoded += HEX.charAt((charCode >> 4) & 0xF);
    encoded += HEX.charAt(charCode & 0xF);
   }
  }
 } // for

 return encoded;
};

function URLDecode(txt)
{
   // Replace + with " "
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef";
   var encoded = txt;
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
    if (ch == "+") {
        plaintext += " ";
     i++;
    } else if (ch == "%") {
   if (i < (encoded.length-2)
     && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1
     && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
    plaintext += unescape( encoded.substr(i,3) );
    i += 3;
   } else {
    alert( "Bad escape combination near ..." + encoded.substr(i) );
    plaintext += "%[ERROR]";
    i++;
   }
  } else {
     plaintext += ch;
     i++;
  }
 } // while
   return plaintext;
};


posted by 망차니

설정

트랙백

댓글

사운드제어

렛츠웹 + 게임/My Tip 2009. 1. 5. 16:54
<!---------------------------------프레임부분----------------------------------->
<frameset rows='0, 1*' framespacing=0 frameborder=0>
	<frame src='music_play.php' name='main_top' target_frame='main' marginwidth=0 marginheight=0 noresize scrolling=no>
	<frame src='content.php?db=index' name='main' target_frame='_self' marginwidth=10 marginheight=10 noresize>
    <body bgcolor='white' text='black' link='blue' vlink='purple' alink='red'>
    <p>이 페이지를 보려면, 프레임을 볼 수 있는 브라우저가 필요합니다.</p>
    </body>
    </noframes>
</frameset>




<!-----------------------------music_play.php시작---------------------------------->
<html>
<head>
<title>juck box</title>
<script language="JavaScript"> 


var music1="music1.mp3";
var m_tm1 =285000; 
var music2="music2.mp3"; 
var m_tm2 =226000;
var music3="music3.mp3"; 
var m_tm3 =254000;

var tot_num = 3;                               // 총갯수
var cur_music=1;                               // 시작음악
var st = 0;                                        //타이머 상태
function music_play(){
   document.player.Stop();                 //플레이어 스탑 
   if(st==1){                                     //타이머 스탑
      clearTimeout(time_id);
	  st=0;
   }
   kkk =  eval("music"+cur_music);        //플레이
   document.player.Open(kkk);
   du = eval("m_tm"+cur_music);
   cur_music++;                                //다음 음악선택
   if(cur_music> tot_num){
      cur_music =1;
   }
   st=1;
   //time_id=setTimeout("music_play()", du);   //타이머 세팅
}

</script> 
</head>

<body>
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" width="1" height="1" vspace="1" hspace="1" align="middle" id="player" style="left:0px; top:0px;">
<param name="AllowScan" value="true">
<param name="AudioStream" value="-1">
<param name="AutoRewind" value="false">
<param name="AutoStart" value="true">
</object>



</body>
</html> 
<!----------------------------------------music_play.php끝--------------------------------->




<!--------------------------------해당 본페이지 조절 박스부위 시작----------------------------->
<script>
function music_playing(mode)
{
	if(mode=='sound_off'){
		top.main_top.document.player.mute=true;
	}
	else if(mode=='sound_on'){
		top.main_top.document.player.mute=false;
	}
	else if(mode=='music_pause'){
		if(top.main_top.document.player.PlayState==2){
			top.main_top.document.player.Pause();//1
		}
	}
	else if(mode=='music_stop'){
		top.main_top.document.player.Stop();//0
	}
	else if(mode=='music_play'){
		top.main_top.document.player.Play();//2
	}
	
}
</script> 
<!----------------------------------------해당 본페이지 조절 박스부위 끝------------------------------->

posted by 망차니

설정

트랙백

댓글

엑셀로다운받기

렛츠웹 + 게임/My Tip 2009. 1. 5. 16:52
<?
header( "Content-Type: application/x-msexcel" );
$db = mysql_connect("","","");


$status = mysql_select_db("PositiveNew");
if (!$status) {
   echo("DB_선택 못함");
      exit;
  }

$qur1="select Id, Money, No, Password from Premium_User where Domain = '$Domain'";

$Mem1=mysql_query($qur1);
print "\n";
print "이름\t아이디\t패스워드\t주민번호\t주소\t전화번호\t이메일\t적립금\t가입일\n";

while( $data1 = mysql_fetch_array($Mem1) )
{

$qur2="select * from Profile where No = '$data1[No]'";

$Mem2=mysql_query($qur2);

while( $data2 = mysql_fetch_array($Mem2) )
{
print "$data2[Name]\t$data1[Id]\t$data1[Password]\t$data2[Pn]\t$data2[Addr]\t$data2[Tel]\t$data2[Email]\t$data1[Money]\t$data2[Dates]\n";
}
usleep(2);
}

?>

------------------------------------
<?

include "/WWW/Root.set";
include _PREMIUM_INFO;
include _PREMIUM_DBINIT;

if ( !$Domain ) die( "<!-- domain required -->" );
if ( !$Pw ) die( "<!-- password required -->" );

if ( $Connect[Pw] != $Pw ) die( "<!-- password is not correct -->" );

header( "Content-Type: application/x-msexcel" );

$OfferMeta = $PremiumDB->Table( "OfferMeta" );
$OfferData = $PremiumDB->Table( "OfferData" );

$OfferMeta->Select( "*", "", "Order by No DESC" );

while( $data = $OfferMeta->Fetch() )
{
$Date = date( "Y-m-d H:i", $data[Date] );
print "주문번호\t총구매가\t배송료\t적립금\t구입시사용한적립금\t구매일시\t회원구매시 회원아이디\n";
print "$data[OfferId]\t$data[Price]\t$data[LogisticsFee]\t$data[Mileage]\t$data[MileageUse]\t$Date \t$data[Id]\n";
print "구매자\n";
print "이름\t이메일\t주소\t전화번호\n";
print "$data[Name1]\t$data[Email1]\t$data[Zip1] $data[Addr1]\t$data[Tel1]\n";
print "수취인\n";
print "이름\t이메일\t주소\t전화번호\t메모\n";
print "$data[Name2]\t$data[Email2]\t$data[Zip2] $data[Addr2]\t$data[Tel2]\t$data[Memo]\n";
print "주문한 물건\n";
print "물품이름&옵션\t가격\t주문수량\n";
$OfferData->Select( "*", "OfferId='$data[OfferId]'" );
while( $data1 = $OfferData->Fetch() )
{
print "$data1[ProductName] $data1[O1_1] $data1[O1_2] $data1[O1_3] $data1[O2] $data1[O3_1] $data1[O3_2] $data1[O3_3]\t$data1[Price]\t$data1[Quantity]\n";
}
print "\n\n";
usleep(2);
}

?>
--------------------------------------------------------------
<?
header( "Content-Type: application/x-msexcel" );
$db = mysql_connect("","","");

$status = mysql_select_db("Premium_english");
if (!$status) {
   echo("DB_선택 못함");
      exit;
  }

$qur1="select * from Shopping_category";

$Shopping_category=mysql_query($qur1);
if(!Shopping_category)
{
echo mysql_errno().":";
echo mysql_error();
exit;
}

while( $data = mysql_fetch_array($Shopping_category) )
{
$Catg=explode("/","$data[Catg]");

if(sizeof($Catg)==2) {
print "\n";
print "상위카테고리 : ";
print "$data[Title]\n";
print "\n";
print "상품명\t소매가\t판매가\t지은이\t출판사\t주제\t대상\t형태\t크기\n";
$qur2="select * from Shopping_product";

$Shopping_product=mysql_query($qur2);

while($data2 = mysql_fetch_array($Shopping_product))
{
$Catg2=explode("/","$data2[Catg]");

if($Catg[0]==$Catg2[0]){
$add=explode("|","$data2[Additional_info]");
print "$data2[Title]\t$data2[Price_customer]\t$data2[Price]\t$add[1]\t$add[5]\t$add[4]\t$add[2]\t$add[6]\t$add[3]\n";
print "\n";
}

}

}

usleep(2);
}

?>
-------------------------------------------------------------------
<?
header( "Content-Type: application/x-msexcel" );
$db = mysql_connect("","","");

$status = mysql_select_db("Premium_english");
if (!$status) die("DB_선택 못함");

$qur1="select a.Title,a.Catg,
  b.Additional_info, b.Title Title2, b.Price_customer, b.Price
         from Shopping_category a, Shopping_product b
        where substring(a.Catg,locate('/',a.Catg))='/'
          and a.Catg like concat(substring(b.Catg,1,locate('/',b.Catg)),'%')
        order by a.Catg";

$Shopping_category = mysql_query($qur1);

if(!$Shopping_category) {

echo mysql_errno().":";
echo mysql_error();
exit;
}

echo "상위카테고리\t상품명\t소매가\t판매가\t지은이\t출판사\t주제\t대상\t형태\t크기\n";

while( $data = mysql_fetch_array($Shopping_category) ) {

$add=explode("|","$data[Additional_info]");

echo "$data[Title]\t$data[Title2]\t$data[Price_customer]\t$data[Price]\t$add[1]\t$add[5]\t$add[4]\t$add[2]\t$add[6]\t$add[3]\n";
 
flush();
usleep(1);
}
?>
-------------------------------------------------------------------
<?
header( "Content-Type: application/x-msexcel" );
$db = mysql_connect("","","");

$status = mysql_select_db("Premium_english");
if (!$status) die("DB_선택 못함");

$qur1="select a.Title,a.Catg,
  b.Additional_info, b.Title Title2, b.Price_customer, b.Price
         from Shopping_category a, Shopping_product b
        where substring(a.Catg,locate('/',a.Catg))='/'
          and a.Catg like concat(substring(b.Catg,1,locate('/',b.Catg)),'%')
        order by a.Catg";

$Shopping_category = mysql_query($qur1);

if(!$Shopping_category) {

echo mysql_errno().":";
echo mysql_error();
exit;
}

echo "상위카테고리\t상품명\t소매가\t판매가\t지은이\t출판사\t주제\t대상\t형태\t크기\n";

while( $data = mysql_fetch_array($Shopping_category) ) {

$add=explode("|","$data[Additional_info]");

echo "$data[Title]\t$data[Title2]\t$data[Price_customer]\t$data[Price]\t$add[1]\t$add[5]\t$add[4]\t$add[2]\t$add[6]\t$add[3]\n";
 
flush();
usleep(1);
}
?>
----------------------------------------------------------------------------------------------------
<?
header( "Content-Type: application/x-msexcel" );
$db = mysql_connect("","","");

$status = mysql_select_db("Premium_testsite");
if (!$status) {
   echo("DB_선택 못함");
      exit;
  }

$qur1="select * from OfferMeta Order by No Desc";

$OfferMeta=mysql_query($qur1);
if(!$OfferMeta)
{
echo mysql_errno().":";
echo mysql_error();
exit;
}
while($data = mysql_fetch_array($OfferMeta))
{
$Date = date( "Y-m-d H:i", $data[Date] );
print "주문번호\t총구매가\t배송료\t적립금\t구입시사용한적립금\t구매일시\t회원구매시 회원아이디\n";
print "$data[OfferId]\t$data[Price]\t$data[LogisticsFee]\t$data[Mileage]\t$data[MileageUse]\t$Date \t$data[Id]\n";
print "구매자\n";
print "이름\t이메일\t주소\t전화번호\n";
print "$data[Name1]\t$data[Email1]\t$data[Zip1] $data[Addr1]\t$data[Tel1]\n";
print "수취인\n";
print "이름\t이메일\t주소\t전화번호\t메모\n";
print "$data[Name2]\t$data[Email2]\t$data[Zip2] $data[Addr2]\t$data[Tel2]\t$data[Memo]\n";
print "주문한 물건\n";
print "물품이름&옵션\t가격\t주문수량\n";
$qur2="select * from OfferData where OfferId='data[OfferId]'";
$OfferData=mysql_query($qur2);
while( $data1 = mysql_fetch_array($OfferData) )
{
print "$data1[ProductName] $data1[O1_1] $data1[O1_2] $data1[O1_3] $data1[O2] $data1[O3_1] $data1[O3_2] $data1[O3_3]\t$data1[Price]\t$data1[Quantity]\n";
}
print "\n\n";
usleep(2);
}

?>

'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

linux 파일 검색,치환등  (0) 2009.01.05
사운드제어  (0) 2009.01.05
소켓통신 프로토콜, xml 파싱  (0) 2009.01.05
키코드 만들기  (0) 2009.01.05
PHP, Ajax (prototype)을 이용한 XML 통신  (0) 2009.01.05
posted by 망차니

설정

트랙백

댓글

키코드 만들기

렛츠웹 + 게임/My Tip 2009. 1. 5. 16:51

<?
////////////////////////////////////////////////////////////////////////////////////
/////////////////////////링크에 키코드 만들기///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///4자리 랜덤 문자가져와서
function randomenum60()
{
 global $pass;
 $pass='';
 $num = array(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,1,2,3,4,5,6,7,8,9,0);
 
 for($i=0;$i<60;$i++)
 {
     $rand = rand(0,35);
     $pass .= $num[$rand];
 }
 return $pass;
}   
function KeyEncode($str)
{
 global $key_ff,$key_f;
 $key_ff='';
 $key_f='';
 $total=0;
 $key_f='';
 $seed = 'sjdcmvlweq';
 $len=strlen($str);
 
 for($i = 0 ;$i < $len;$i++) 
 {
   $n_s = substr($str,$i,1);
   $total+=$n_s; 
   $tmp = substr($seed,$n_s,1);

   $key_f   .=$tmp;
 }

 $t_s=substr($total,-1); 
 $total_string = substr($seed,$t_s,1);
 $key_ff=$key_f.$total_string;
 
 return $key_ff;
}
?>


'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

엑셀로다운받기  (0) 2009.01.05
소켓통신 프로토콜, xml 파싱  (0) 2009.01.05
PHP, Ajax (prototype)을 이용한 XML 통신  (0) 2009.01.05
정규표현식(php)  (0) 2009.01.05
암,복호화 함수  (0) 2009.01.05
posted by 망차니

설정

트랙백

댓글

PHP, Ajax (prototype)을 이용한 XML 통신

렛츠웹 + 게임/My Tip 2009. 1. 5. 16:50
 
php와 Javascript를 이용하여 XML 통신을 하는 법은 이미 많은 예시가 있다.
이 글은 공부목적으로 개인적으로 정리한 것이다.

Javascript에 있는 XHR(XMLHttpRequest)를 이용하여 php에서 XML을 동적으로 받는 프로그램을 간단하게 만들었다.

특별히 Javascript에서 XHR을 구현을 위해서는 각종 브라우져마다 다르게 만들어야하는 번거로움이 있어서 나는 prototype.js 라는 Javascript 프레임워크에서 제공하는 XHR 기능을 이용했다.


아주 쉬운 예제이기 때문에 자세한 설명은 생략한다.(사실 귀찮기 때문에.. ㅋ)

index.html (Language : html4strict)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>prototype을 이용한 Ajax 테스트</title>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
    function request(group)
    {
        //alert(group);
        new Ajax.Request(
            "http://192.168.0.200/~jidolstar/testXML.php",
            {
                asynchronous:true,
                method:"get",
                parameters: {"group": group} ,
                onSuccess:function(request)
                {
                    var xmlData = request.responseXML;
                    var members = new Array();
                    var memberNude  = xmlData.getElementsByTagName("member");
                    var nameNode = xmlData.getElementsByTagName("name");
                    var companyNode = xmlData.getElementsByTagName("company");
                    var telnumNode = xmlData.getElementsByTagName("telnum");
                    var memberCount = memberNude.length;
                    for ( i=0; i < memberCount; i++ )
                    {
                        var name    = nameNode[i].childNodes[0].nodeValue;
                        var company = companyNode[i].childNodes[0].nodeValue;
                        var telnum  = telnumNode[i].childNodes[0].nodeValue;
                        members.push( {"name":name, "company":company, "telnum":telnum} );
                    }

                    var str="";
                    for ( i=0; i < members.length; i++ )
                    {
                        str += "<H1>member : " + (i+1) + "</H1>";
                        str += "<div>name : " + members[i].name + "</div>";
                        str += "<div>company : " + members[i].company + "</div>";
                        str += "<div>telnum : " + members[i].telnum + "</div>";
                    }
                    //document.getElementById["divResult").innerHTML = str;
                    $("divResult").innerHTML = str;

                       
                },
                onFailure:function()
                {
                    $("divResult").innerHTML = "실패";
                }
            });
    }

</script>
</head>
<body onload="request(document.frm.groupSelect.value)" >
    <form name="frm">
        <select name="groupSelect" onchange="request(document.frm.groupSelect.value)">
            <option value="1">1 Group</option>
            <option value="2">2 Group</option>
        </select>
    </form>
    <div id="divResult"></div>
</body>
</html>



textXML.php (Language : php)
<?php
$group = $_GET[group];
header("Content-type: text/xml;charset=utf-8");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";

switch($group)
{
    case 1:
        $xml="<members>
                <member>
                    <name>지돌스타</name>
                    <company>wecon</company>
                    <telnum>010-2238-0321</telnum>
                </member>
                <member>
                    <name>mira</name>
                    <company>wecon2</company>
                    <telnum>010-2222-2333</telnum>
                    </member>
                <member>
                    <name>mira</name>
                    <company>wecon2</company>
                    <telnum>010-2222-2333</telnum>
                </member>
            </members>"
;
        break;


    case 2:
        $xml="<members>
                <member>
                    <name>mikoung</name>
                    <company>uranos</company>
                    <telnum>010-233-3333</telnum>
                </member>
                <member>
                    <name>uram</name>
                    <company>uranos2</company>
                    <telnum>010-1111-2323</telnum>
                    </member>
                <member>
                    <name>deokgon</name>
                    <company>uranos3</company>
                    <telnum>010-234-9999</telnum>
                </member>
            </members>"
;

        break;

    default:


        break;
}

echo iconv("CP949","UTF-8", $xml);
?>

PHP에서 inconv("CP949","UTF-8",$xml);은 한글을 UTF-8형태로 전송하기 위한 것이다. 서버에서 UTF-8을 지원하지 않는다면 이렇게 해야한다. 그래야 UTF-8로 보낼시 한글이 깨지지 않는다. 

'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

소켓통신 프로토콜, xml 파싱  (0) 2009.01.05
키코드 만들기  (0) 2009.01.05
정규표현식(php)  (0) 2009.01.05
암,복호화 함수  (0) 2009.01.05
iframe자동 크기 조절  (0) 2009.01.05
posted by 망차니

설정

트랙백

댓글

정규표현식(php)

렛츠웹 + 게임/My Tip 2009. 1. 5. 16:49
1.정규표현식이란?
정규표현식이란 어떤한 문자열의 집합을 정확하게 나타내기 위한 표현 규칙이다.
찾고자 하는 문자열들이 가진 공통된 패턴을 정규표현식을 이용해 표현, 지정함으로써 이 패턴에 일치하는 문자열의 검색을
쉽게 할 수 있고 좀 더 세밀한 방법으로 검색이 가능하다.

2.정규표현식의 규칙
1) .
임의의 한 글자를 가리킨다.
s.e :   sae, sbe, sce, sde

2) *
* 바로 앞의 문자가 없거나 하나 이상임을 나타낸다.
// * 앞에 있는 문자인 s가 e 앞에 없거나 하나 이상 존재한다.
s * e  : e, se, sse, ssse

3) +
+ 바로 앞의 문자가 하나 이상이다.
s + e : se, sse, ssse

4) ?
? 바로 앞의 문자가 없거나 1개 임을 나타낸다.
th?e : te, the

5) ^
^ 바로 뒤의 문자열(뒤에 있는 문자 모두)로 시작된다.
^the       the로 시작하는 모든 문자  the girl, theater
^a?bc    bc나 abc로 시작하는 모든 문자열 bceft, abcdef
^.e        e 앞에 한 글자가 존재하는 문자열로 시작   he, me, request
^s.e?     s와 한 문자로 시작하고 그 뒤에 e가 하나 있거나 없는 문자열  sa, sae, sb

6) $
$ 바로 뒤에 나오는 문자열로 끝나는 것을 의미
a?bc$    eeabc, seebc, bc
t.e$       onthetoe, bctae
s?e+$    e, se, ee, seee
^the$     the

7) [ ]
괄호 안에 있는 문자열 중에서 하나의 문자를 포함하는 문자열
.범위를 지정할 때에는 - 사용한다.                 // [0-9], [a-z]
.원하지 않는 문자를 제외할 때 [] 안에 첫문자로 ^를 사용한다.  //[^ab]cd

8) { }
{ } 앞에 있는 문자나 문자열의 개수를 나타낸다.
{n} : n개    {n,} : 최소 n개    {n,m} : n개에서 m개까지
a{2}b      {}앞에 있는 문자 a의 개수가 2개임     aab
a{2 ,}b    a의 개수가 최소한 2개임                   aab, aaab, aaaab
a{1,3}b   a의 개수가 1개에서 3개까지임            ab, aab, aaab

9) ( )
( ) 안에 있는 글자들을 그룹화한다.
a(bc){2}  bc가 두 개임          ocabcbctor

10) |
or 연산자이다.
he|she   he 나 she 를 포함하는 문자열  he is handsome, she"s gone


3.정규 표현식에서 특수 문자의 사용

정규 표현식에서 사용되는 특수 문자를 특수 문자가 아닌 그 문자 자체의 의미로 사용하려면
특수 문자 앞에 역슬래시()를 붙여야 한다.
이를 특수문자를 escape시킨다,, 고 한다.

특수문자: ^ . [ ] $ ( ) | * + ? { }


4.문자 클래스

패턴을 [a-z]나 [A-Z]로 표현하는 대신 축약 형태의 문자 클래스로 간단히 표현하는 것
[[:alpah:]]    알파벳 문자 중 하나를 의미하며             [a-zA-Z] 또는 [a-Z]와 동일
[[:digit:]]      숫자 한자를 의미하며                           [0-9]와 동일
[[:alnum:]]    알파벳 문자나 숫자 중 하나를 의미하며  [a-zA-Z0-9]와 동일
[[:space:]]   공백문자(" ")를 의미
[[:punct:]]    모든 구두점 기호

 

=======================================================================

초보자를 위한 PHP 강좌  - 정규표현식 | PHP학습  2006.11.30 23:17 
 

PHP 에서 제공하는 정규 표현식에 대해서 알아보겠습니다.

정규 표현식은 웹 프로그래밍을 할 때 문자열을 정교하게 처리하기 위해 필요합니다.

먼저, 정규 표현식에서 사용되는 패턴 문자 몇 가지를 소개하면 아래와 같습니다.


+ -> "+" 표시 바로 앞의 문자열(문자)이 한 번 이상 존재하는 것을 의미함

^ -> "^" 표시 뒤의 문자열(문자)로 시작되는 것을 의미함

[ ] -> "[ ]" 로 둘러쌓인 문자열(문자) 중에서 하나의 문자를 의미함

[^ ] -> "[ ]" 패턴의 문자열(문자)을 제외한 나머지 문자열(문자)을 의미함

{ } -> "{ }" 앞의 문자열(문자)이 "{ }" 안의 숫자가 나타내는 갯수만큼 존재하는 것을 의미함


[[:digit:]] -> 하나의 숫자(0 에서 9 까지) 를 의미함

[[:alpha:]] -> 하나의 영문자(a 에서 Z 까지) 를 의미함

[[:alnum:]] -> 하나의 숫자(0 에서 9 까지) 또는 영문자(a 에서 Z 까지) 를 의미함

[[:space:]] -> 하나의 공백 문자(blank) 를 의미함


위 패턴 문자를 사용한 정규 표현식이 어떻게 사용되는지 살펴보기 전에, 위와 같은 패턴 문자로 나타내어진 정규 표현식을 사용하기 위해 필요한 함수가 있는데, ereg() 함수가 있습니다.

ereg() 함수는 일반적으로 두 개의 인자를 취하는데, 첫 번째 인자는 패턴 문자로 나타내어진 정규 표현식이 오며 두 번째 인자는 그 정규 표현식에 의해 검색될 대상 문자열이 옵니다.

이렇게 ereg() 함수 내의 두 번째 인자인 검색 대상 문자열에서 첫 번째 인자인 정규 표현식의 패턴이 존재할 경우 ereg() 함수는 true 값을 반환하며 그렇지 않을 경우에는 false 값을 반환하게 됩니다.

그럼, ereg() 함수를 사용하여 위 패턴 문자로 나타내어진 정규 표현식이 어떻게 사용되는지 몇 가지 예제를 살펴보겠습니다.

<?
$string = "mizzle PHP 2002";

# "+" 패턴 검사

if(ereg("iz+", $string)) {
  echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인
} else {
  echo("지정된 패턴과 일치하지 않습니다.<br>");
}

# "^" 패턴 검사

if(ereg("^mi", $string)) {
  echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인
} else {
  echo("지정된 패턴과 일치하지 않습니다.<br>");
}

# "[ ]" 패턴 검사

if(ereg("[si]m", $string)) {
  echo("지정된 패턴과 일치합니다.<br>");
} else {
  echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인
}

# "[[:digit:]]" 패턴 검사

if(ereg("[[:digit:]]{4}", $string)) {
  echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인
} else {
  echo("지정된 패턴과 일치하지 않습니다.<br>");
}

# "[[:alpha]]" 패턴 검사

if(ereg("[[:alpha:]]{7}", $string)) {
  echo("지정된 패턴과 일치합니다.<br>");
} else {
  echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인
}

# "[[:space]]" 패턴 검사

if(ereg("[[:space:]]{2}", $string)) {
  echo("지정된 패턴과 일치합니다.<br>");
} else {
  echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인
}
?>

위 예제를 실행하게 되면, 위 예제 코드의 주석("#실행 라인")으로 표기한 라인이 실행되는 것을 볼 수 있습니다.

위 예제 중 몇 가지만 살펴보면,

"+" 패턴 검사 코드의 경우, "iz" 문자열이 한 번 이상 존재해야 함을 의미하는 iz+ 패턴이 "mizzle PHP 2002" 문자열에 존재하기 때문에 비교 조건식에 일치하는 결과가 출력됩니다.

"[ ]" 패턴 검사 코드의 경우, "sm" 또는 "im" 문자열이 존재해야 함을 의미하는 [si]m 패턴이 "mizzle PHP 2002" 문자열에 존재하지 않기 때문에 비교 조건식에 일치하지 않는 결과가 출력됩니다.

"[[:digit:]]" 패턴 검사 코드의 경우, 연속되는 숫자 4개의 문자가 존재해야 함을 의미하는 [[:digit:]]{4} 패턴이 "mizzle PHP 2002" 문자열에 존재하기 때문에 비교 조건식에 일치하는 결과가 출력됩니다.

이상, 정규 표현식의 기초에 대해서 살펴보았습니다.

정규 표현식의 경우, 위에 제가 설명해 드린 부분 외에도 배울 내용이 많기 때문에 그 부분에 대해서 개인적으로 공부하시면서 충분히 연습 하시기 바랍니다. 
 

=======================================================================

정규표현식

1. 각 문자와 숫자는 해당 문자 또는 문자열이 테스트할 문자열에 있을경우 true 가된다.
<script>
// ""a"" 가 있는 문자열 모두가 TRUE (대소문자 구분)
var filter = /a/
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>

<script>
// "about" 가 있는 문자열 모두가 TRUE (대소문자 구분)
var filter = /about/
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>


2. 대소문자 구분없이 해당 문자 또는 문자열을 검색할 경우 끝에 i 를 붙인다.
<script>
// ""a"" 또는 ""A"" 가 있는 문자열 모두가 TRUE (대소문자 구분 안함)
var filter = /a/i
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>


3. 여러개의 이어지는 내용들을 검색할 경우는 ""-"" 를 넣어 표현한다.
<script>
// ""a"" 에서 ""z"" 까지중 하나만 있으면 모두가 TRUE (대소문자 구분)
var filter = /[a-z]/
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>


4. 여러가지의 문자 또는 문자열을 검색할 경우 ""|"" 를 넣는다.
<script>
// ""a"" 또는 ""b"" 또는 ""c"" 가 있는 문자열 모두가 TRUE (대소문자 구분)
var filter = /a|b|c/
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>

<script>
// ""a"" 에서 ""z"" 까지 또는 ""0"" 에서 ""9"" 까지중 하나만 있으면 모두가 TRUE (대소문자 구분)
var filter = /[a-z]|[0-9]/
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>


5. 해당 문자또는 문자열이 없는 경우를 검색할 경우 브래킷(""["", ""]"") 안에 ""^"" 를 넣는다.
<script>
// ""a"" 에서 ""z"" 까지의 문자가 아닌 문자가 있을 경우 TRUE (대소문자 구분)
var filter = /[^a-z]/
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>


6. 문자열의 첫번째 글자가 일치해야할 경우는 ""^"" 를 브래킷(""["", ""]"") 밖에 넣는다.
<script>
// ""a"" 에서 ""z"" 까지의 문자로 시작하는 문자열일 겨우 TRUE (대소문자 구분)
var filter = /^[a-z]/
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>


7. 문자열의 끝쪽 글자가 해당 문자 또는 문자열과 일치해야할 경우는 ""$"" 를 넣쨈?
<script>
// ""a"" 에서 ""z"" 까지의 문자로 끝나는 문자열일 겨우 TRUE (대소문자 구분)
var filter = /[a-z]$/
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>


8. 특수문자("""", ""^"", ""$"", ""*"", ""+"", ""?"", ""."", ""("", "")"", ""|"", ""{"", ""}"", ""["", ""]"")를 검색할 경우는 """" 를 넣는다.
<script>
// """" 가 있는 문자열일 경우 TRUE (대소문자 구분)
var filter = //
if (filter.test("some test words") == true) { alert("ok"); } else { alert("fail"); }
</script>


'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

키코드 만들기  (0) 2009.01.05
PHP, Ajax (prototype)을 이용한 XML 통신  (0) 2009.01.05
암,복호화 함수  (0) 2009.01.05
iframe자동 크기 조절  (0) 2009.01.05
엑셀저장처리  (0) 2009.01.05
posted by 망차니

설정

트랙백

댓글

암,복호화 함수

렛츠웹 + 게임/My Tip 2009. 1. 5. 16:48

function bytexor($a,$b)
{
        $c="";
        for($i=0;$i<16;$i++)$c.=$a{$i}^$b{$i};
        return $c;
}


function decrypt_md5($msg,$key)
{
        $string="";
        $buffer="";
        $key2="";

        while($msg)
        {
                $key2=pack("H*",md5($key.$key2.$buffer));
                $buffer=bytexor(substr($msg,0,16),$key2);
                $string.=$buffer;
                $msg=substr($msg,16);
        }
        return($string);
}

function encrypt_md5($msg,$key)
{
        $string="";
        $buffer="";
        $key2="";

        while($msg)
        {
                $key2=pack("H*",md5($key.$key2.$buffer));
                $buffer=substr($msg,0,16);
                $string.=bytexor($buffer,$key2);
                $msg=substr($msg,16);
        }
        return($string);
}

// 사용 예
$message = "다양한 원본 메시지 東西南北 ABC abc 123 ※ ↔ ";
$key = "아..이정도면 매우 복잡한 키--1;";

$encrypted = encrypt_md5($message, $key);
$decrypted = decrypt_md5($encrypted, $key);

echo "Encrypted = $encrypted";
echo " <HR>";
echo "Decrypted = $decrypted";

 


'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

PHP, Ajax (prototype)을 이용한 XML 통신  (0) 2009.01.05
정규표현식(php)  (0) 2009.01.05
iframe자동 크기 조절  (0) 2009.01.05
엑셀저장처리  (0) 2009.01.05
표준웹코딩 예제  (0) 2007.10.09
posted by 망차니

설정

트랙백

댓글

엑셀저장처리

렛츠웹 + 게임/My Tip 2009. 1. 5. 16:31
엑셀저장처리 


'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

정규표현식(php)  (0) 2009.01.05
암,복호화 함수  (0) 2009.01.05
iframe자동 크기 조절  (0) 2009.01.05
표준웹코딩 예제  (0) 2007.10.09
표준웹코딩의 장점 Table for layout과 CSS layout의 비교실험  (0) 2007.06.09
posted by 망차니

설정

트랙백

댓글