728x90

addslashes 함수의 필요성

 

addslashes(string str) 함수는 php와 데이터베이스의 연동 db insert,update 시 필수적으로 해줘야 한다.


addslashes 함수는 매개변수로 넘겨준 문자열 안에 single quote(') 혹은 double quote("), 백슬래쉬(\), NULL 바이트가 포함되어 있다면 해당 문자 앞에 역슬래시(\)를 추가해 주는 함수다.

insert into dbtable (text) values (''사랑해'라고 말해줘요'); // DB 입력시 에러 발생

 

$text = addslashes($text);
insert into dbtable (text) values ('\'사랑해\'라고 말해줘요');

insert into dbtable (text) values ('I\'m sorry, I can\'t help you after all.');

 

DB에 있는 걸 읽어와서 Web 브라우저에 뿌려줄 때는 역슬래쉬(\)를 제거하는 함수인 stripslashes()를 사용한다.
검색어를 입력할 때 \\\ 가 많이 생긴다면 이걸 제대로 처리해주지 못해서 생기는 증상이다.

 

post해서 넘어온 변수를 일일이 addslashes해주는 건 귀찮은 일이고 화면에 출력할 때 stripslashes 하는 것도 상당히 귀찮은 일이다.

array_map() 함수를 사용하면 쉽게 해결된다.

post경우
$data = array_map('addslashes', $data);

select경우
while($data=mysql_fetch_array($row)){
 $data=array_map('stripslashes', $data);
}


대체 문법으로 표현하면


while($data=mysql_fetch_array($row)) :
 $data=array_map('stripslashes', $data);

endwhile;


 

블로그 이미지

Link2Me

,
728x90

MySQL DB 중복여부 검사하여 없는 것만 추가


자료를 DB에 입력하는 걸 좀 편하게 하려고 중복검사 루틴을 만들어서 테스트를 했는데 계속 자료가 중복으로 들어가 저장된다.

서버 DB 자료를 엑셀로 내보내기 해서 중복검사를 하면 중복된 데이터는 전부 체크하여 표시를 해준다.

어디서 잘못된 걸까? 계속 머리 싸매다가 네이버 검색으로 하는데 자료 찾아도 잘 안나온다.

구글링을 해서 찾았더니 뭔가 힌트가 될만한 것이 검색된다.

넣어서 검사를 했더니 제대로 중복검사 여부를 체크한다.

WHERE eng = '".addslashes($line[0])."'

바로 이 부분 때문에 중복검사를 제대로 못했던 거다.

물론 '(Apostrophe) and " (Quotation mark) 가 없는 한글은 WHERE han = '$line[1]' 으로 검사해도 중복체크를 잘 한다.

중복검사 하는 가장 핵심적인 팁이라 할 수 있는 걸 찾게 되어 너무 기쁘다.


<?
$DB_CONNECT = isConnectDb($DB);
########### DB 연결 ###########
$file=fopen("insert_data.csv","r");
if(!$file){
    echo("Failed to open the file");
    exit;
}

while($line = fgetcsv($file,1000, ";")) { // 구분자는 ; 로 지정, 한줄씩 읽어드린 값을 끝라인까지 계속하라.
    $query = mysql_query("SELECT uid, eng FROM engtable WHERE eng = '".addslashes($line[0])."'",$DB_CONNECT);
    $dupcheck = mysql_fetch_array($query);
    if ($dupcheck['uid']) {
           $dup_line ++;
    } else {     // 중복된 자료가 없을 경우
        $eng = addslashes(trim($line[0]));    // 쿼터(')의 경우 역슬래쉬(\) 처리해야 DB에 저장됨

        $sql = "INSERT INTO $tblName (uid,eng,kor) VALUES (NULL,'$eng','$kor')";
        mysql_query($sql,$DB_CONNECT); // MYSQL DB에 저장
        $ok ++;
        if (($ok % 500) == 0) {
            echo(" $ok 건 저장");
            flush();
            sleep(3); //500개 저장할때마다 3초씩 쉰다.
        }
    $total_line++;
    } //중복체크 END 문
}

if ($dup_line > 0) {
    echo("중복 $dup_line 건 있음");
    echo "<br>";
}
echo("총 $total_line 자료 추가");
fclose ($file);
?>

블로그 이미지

Link2Me

,
728x90

텍스트 파일안의 내용 찾기

 

텍스트 파일안의 내용을 찾고자 할 경우가 있다.

수많은 파일 중에서 내가 찾고자 하는 검색어가 어느 파일에 있는지 찾기가 쉽지 않아 고생을 한적이 있다.

인터넷 검색하면 상위 검색되는 텍스트 내용 찾아주는 유틸들 사용해보느라고 고생을 했는데 이젠 그럴 필요가 없다.

 

바로 Total Commander 만 이용하면 되기 때문이다.

 

 

 

2번을 선택하면 원하는 파일만 놓고서 파일을 열어서 찾고자 하는 내용을 다시 검색하여 찾기가 매우 편하다.


리눅스 상에서 직접 파일의 내용을 검색하는 방법은 http://link2me.tistory.com/571 참조하면 된다.

 

 

 

'Web 프로그램 > Web 개발도구' 카테고리의 다른 글

SVN 개념과 Tortoise SVN  (0) 2014.10.12
레지스트리 등록 안될 때  (0) 2014.09.25
[EditPlus]줄 앞/끝 공백제거  (1) 2014.05.13
EditPlus 보기 설정  (0) 2014.05.10
[EditPlus]EditPlus 정규식  (0) 2014.05.10
블로그 이미지

Link2Me

,
728x90

최고관리자 비밀번호 변경


킴스큐RB의 관리자 비밀번호를 분실한 경우에는 데이터베이스에서 수정해 줘야 한다.

물론 사용자 ID도 MySQL 상에서 변경이 가능하다.

update rb_s_mbrid set pw=md5('변경할 비번') where id='관리자아이디';



mysql > use DB명;      // 접속할 DB명으로 이동

mysql >  show tables;   // DB의 테이블 리스트 출력


mysql > update rb_s_mbrid set pw=md5('변경할 비번') where id='관리자아이디';

mysql > flush privileges;    // 변경사항 적용

'Web 프로그램 > 킴스큐RB' 카테고리의 다른 글

글 등록자만 수정버튼 보이게 하기  (0) 2015.04.01
킴스큐 함수  (0) 2015.03.01
글 등록자만 수정버튼 보이게 하기  (0) 2014.07.19
킴스큐RB 모듈 등록  (0) 2014.07.07
db환경설정 파일위치  (0) 2014.05.04
블로그 이미지

Link2Me

,
728x90

글 등록자만 수정버튼 보이게 하기


KIMSQ RB


<span class="btn00"><a href="<?php echo $g['bbs_modify'].$R['uid']?>">수정</a></span>

위 코드에 아래 처럼, 위아래로 코드를 추가한다

<?php if($R['mbruid'] == $my['uid']):?>
<span class="btn00"><a href="<?php echo $g['bbs_modify'].$R['uid']?>">수정</a></span>
<?php endif?>


'Web 프로그램 > 킴스큐RB' 카테고리의 다른 글

킴스큐 함수  (0) 2015.03.01
최고관리자 비밀번호 변경  (0) 2014.08.14
킴스큐RB 모듈 등록  (0) 2014.07.07
db환경설정 파일위치  (0) 2014.05.04
킴스큐 RB 모듈 설치 및 삭제  (0) 2014.04.05
블로그 이미지

Link2Me

,
728x90

킴스큐RB 모듈 등록


킴스큐RB 모듈 등록방법은 등록할 파일명을 압축한다.


rb_moulde_압축폴더명.zip



으로 설치를 한다.


_var/table.info.php 파일에 추가한다.



이제 DB에 테이블을 추가한다.



모듈 제작자에 따라서는 테이블도 자동 생성하고 table.info.php 에도 자동추가하도록 만든다.


이제 메뉴를 등록하고 연결을 한다.





이렇게 하면 메뉴가 등록이 완료되고 설치한 모듈을 사용할 수 있다.



'Web 프로그램 > 킴스큐RB' 카테고리의 다른 글

킴스큐 함수  (0) 2015.03.01
최고관리자 비밀번호 변경  (0) 2014.08.14
글 등록자만 수정버튼 보이게 하기  (0) 2014.07.19
db환경설정 파일위치  (0) 2014.05.04
킴스큐 RB 모듈 설치 및 삭제  (0) 2014.04.05
블로그 이미지

Link2Me

,
728x90

접속 IP 검사


<?php
$UserIP = $REMOTE_ADDR;

$ip_extract = explode(".",$UserIP);  //.로 분리해서 배열로 저장
$UserIP_trim = $ip_extract[0].".".$ip_extract[1].".".$ip_extract[2];

$IP_block1 = '192.168.1';

if($UserIP_trim != $IP_block1) {
   echo "<script> window.alert('허용IP대역 아님'); history.back();</script>";

   //echo ("<meta http-equiv='Refresh' content='0; URL=/'>");  // 홈으로 이동시킴
}
?>


IP검사를 하고 검사조건과 틀리면 history.go(-1) 뒤로 이동하거나 홈으로 이동 등 원하는 조건으로 분기시킬 때 유용하게 사용할 수 있다.


'Web 프로그램 > PHP 응용 및 활용' 카테고리의 다른 글

[PHP] 쿠키와 세션, 그리고 보안  (0) 2015.05.27
[PHP] 홈페이지 설정 정보 확인  (0) 2015.04.28
PHP 기본 함수  (0) 2015.03.07
[PHP] 한글자르기 substr  (0) 2015.01.04
GET, POST 변수전달  (0) 2014.05.15
블로그 이미지

Link2Me

,
728x90

PHP 변수전달 GET, POST



$_POST$_GET 같은 슈퍼 전역 배열은 PHP 4.1.0 이후버전부터 사용되기 시작했다.

$_REQUEST 는 $_GET 배열과 $_POST 배열 둘다 처리할 수 있다.


수퍼 전역변수

$_COOKIE    HTTP 쿠키 변수
$_FILES      업로드시 파일 정보 변수
$_SESSION  세션 변수
$_SERVER   웹서버와 PHP 환경에서의 환경 설정 변수


전역변수 : 모든 함수와 어느 영역이든 사용 가능한 변수


GET

같은 페이지가 아닌 다른페이지에서 값을 넘겨 받을때 사용되어지는 방식

직접 url에 ? 로 붙여서 전달하는 방법

웹브라우저의 URL에는 같이 넘어갈수 있는 글자수에 한계(255자)가 있다.


GET 방식의 장점 : 속도가 빠르다!

GET 방식의 단점
정보가 노출되므로 보안 취약하다.
보내는 정보의 크기가 1024바이트로 제한된다.

기본적으로 데이터베이스에 대한 질의어 데이터와 같은 요청 자체를 위한 정보를 전송할 때 사용

GET 방식을 사용하면 이를 초과하는 데이터가 절단되므로, 일정한 크기 이상의 데이터를 전송할 때에는 POST 방식을 사용


POST

폼을 통해 입력받은 값을 전달하는 방법

POST 방식은 GET 방식과 달리 정보를 첨부파일 형태로 전달하기 때문에 보안성이 GET 방식에 비해 좋으며, 보내는 정보의 크기에 제한이 없다.


POST 방식의 단점 : 속도가 GET방식보다 느리다고 하는데 차이가 없다. 보안상 POST 방식을 사용하는게 좋다.


php 파일(Page)에서 다른 파일(Page)로 변수를 전달할 때 $_GET 배열이나 $_POST 배열로 넘긴다.

받아들이는 쪽에서 둘다 받아들이게 하려면 $_REQUEST 배열로 받는다.


$_GET['변수명']

$_POST['변수명'];    // 변수명 예를 들면 username
$_POST['$변수명'] --> $변수명

으로 받을수 있는건 php.ini 에서 register_globals=On 인 상태에서만 작동한다.

보안 강화 목적으로 PHP 버전이 높아지면서 보안 강화를 목적으로 register_globals 는 삭제되었다.

PHP 5.4 부터 session_register 기능이 없어졌다.


register_globals = on
  가능 -> $_POST['user_name']
  가능 -> $user_name
register_globals = off
  가능 -> $_POST['user_name']
  불가능 -> $user_name  // 단, extract($_POST) 추가시 가능


extract($_POST); 를 한줄 상단에 추가해주면 $_POST['$변수명'] 대신에 $변수명 을 사용할 수 있다.

단 보안을 고려하여 

if(isset($_POST) && $_SERVER['REQUEST_METHOD'] == "POST"){

@extract($_POST); // $_POST['loginID'] 라고 쓰지 않고, $loginID 라고 써도 인식되게 함

}

와 같이 해주는 것이 바람직하다.


먼저, 다음과 같이 텍스트 입력 박스가 들어간 간단한 HTML 코드를  보자.

HTML 에서 page 간에 값을 넘기는 방식이 GET방식과 POST 방식이 있다.

아래 코드는 POST 방식으로 값을 넘기는 예제이다.


method="post" 를 지정하지 않으면 GET방식으로 데이터를 전달한다.


=== registerform.html ===
<form method = "post" action = "register.php">
  나이? <input type = "text" name = "age">
  <input type = "submit" value = "확인">
</form>


 속성

설명

 name

 폼의 이름

 method

 폼 정보 전달방식(GET 또는 POST)

 enctype

 폼 데이터의 인코딩 타입(POST 전송만 해당)

 action

 폼의 정보가 전달될 주소


HTML에서 method="value" 와 같이 value가 숫자가 아닐 경우에는 quote를 해 주는 것이 좋다.
그리고 HTML quote시에는 single quote보다 double qoute가 렌더링 시에 더 빠르다.

password와 같은 정보는 GET 보다는 POST로 넘겨야 안전하다.

input type을 hidden으로 해주면 화면상에는 몇개 안보이지만 실제로는 많은 변수를 넘겨줄 수 있다.

<input type="hidden" name="num" value="<?php echo $_GET['num']; ?>">


위 코드를 웹 브라우저로 확인하면 입력 박스 한 개와 확인 버튼이 나오게 된다.
그리고, 그 입력 박스에 사용자가 "30" 이라고 입력하고 확인 버튼을 누르게 되면 입력된 문자열은 위 코드에 기술되어 있듯이 text 양식의 name 에 해당되는 "age" 에 담겨져 action 에 명시된 "register.php" 로 넘겨진다.

다음으로 register.php 웹 페이지가 호출되면 registerform.html 에 기술된 텍스트 박스의 name 에 해당되는 "age" 라는 이름을 갖는 변수 즉, $age 변수 형태(
$_POST['age'])로 전달이 되어진다.

이 때, $age 변수에는 사용자가 registerform.html 웹 페이지에서 입력한 "30" 이라는 문자열이 담겨져 있다.
그럼 실제로 register.php 에 다음과 같은 코드를 작성해서 확인한다.

===
register.php ===
<?php
$age = $_POST['age'];
echo "당신의 나이는 : $age";
?>

결과로 당신이 나이는 : 30
위와 같이 php 에서는 이전 입력 페이지의 폼(form)에 입력된 값을 구하기 위해서는 $_POST['폼 텍스트 박스명'] 형태로 기술해주면 된다.



<form method = "post" action = <?=$PHP_SELF?> >
폼에 임의의 값을 입력받아 자신의 파일($PHP_SELF)로 그 정보를 넘기는 PHP, 즉 자신을 다시 호출함

자신의 파일을 다시 호출하지만, 변수 인식은 $_POST 배열로 받아서 처리한다.

아래 예제에서 $_POST 배열, $_GET 배열일 때 받는 변수에 따라 각각 처리하는 걸 확인할 수 있다.

<?php
if (!isset($_SESSION)) {
    session_start();
}
require('../connection.php');
if(isset($_SESSION['admin']) && $_SESSION['admin']!=1){
   header("location:access-denied.php");
}

$sql ="SELECT * FROM positions";
$result=mysqli_query($dbconn,$sql);
if (mysqli_num_rows($result)<1){
    $result = null;
}

// inserting sql query
if (isset($_POST['Submit'])){
    $newPosition = addslashes( $_POST['position'] ); //prevents types of SQL injection
    $sql = "INSERT INTO positions(position_name) VALUES ('$newPosition')";
    mysqli_query($dbconn,$sql);
    header("Location: positions.php");
}

if (isset($_POST['Update'])){
    $idx = $_POST['idx'];
    $newPosition = addslashes( $_POST['position'] ); //prevents types of SQL injection
    $sql ="Update positions SET position_name='$newPosition' where idx=$idx";
    mysqli_query($dbconn,$sql);
     header("Location: positions.php");
}

// deleting sql query
if (isset($_GET['id']) && isset($_GET['mode']) && $_GET['mode']=='delete') {
 $id = $_GET['id'];
 $sql = "DELETE FROM positions WHERE idx='".$id."'";
 $result = mysqli_query($dbconn,$sql);
 header("Location: positions.php");
}
?>


<!DOCTYPE html>
<html>
<head>
<title>온라인 투표</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link href="layout/styles/layout.css" rel="stylesheet" type="text/css" media="all">
<script language="JavaScript" src="js/user.js">
</script>
</head>
<body id="top">

<?php require_once ('header.php');?>
<div >
    <table width="380" align="center">
    <CAPTION><h4>후보자 분류
    <?php if(isset($_GET['mode']) && $_GET['mode']=='update'){
            echo '수정';
            require_once '../phpclass/dbClass.php';
            $c = new MySQLiDbClass;
            $R = $c -> getDbData('positions', 'idx='.$_GET['id'], '*');
    }else{
        echo '추가';
    }
    ?></h4></CAPTION>
    <form name="fmPositions" id="fmPositions" action="positions.php" method="post" onsubmit="return positionValidate(this)">
        <?php if(isset($_GET['mode']) && $_GET['mode']=='update'):?>
        <input type="hidden" name="idx" value="<?php echo $R['idx'];?>" />
        <?php endif;?>
    <tr>
        <td bgcolor="#00ff80">분류</td>
        <td bgcolor="#808080"><input type="text" name="position" value="<?php echo isset($_GET['mode']) && $_GET['mode']=='update' ? $R['position_name']:'';?>" /></td>
        <?php if(isset($_GET['mode']) && $_GET['mode']=='update'):?>
        <td bgcolor="#00FF00"><input type="submit" name="Update" value="수정" /></td>
        <?php else:?>
        <td bgcolor="#00FF00"><input type="submit" name="Submit" value="추가" /></td>
        <?php endif;?>
    </tr>
    </table>

    <table border="0" width="420" align="center">
        <CAPTION><h4>분류 현황</h4></CAPTION>
        <tr>
        <th>ID</th>
        <th>분류</th>
        <th>수정</th>
        <th>삭제</th>
        </tr>

        <?php
            while ($row=mysqli_fetch_array($result)){
                echo "<tr>";
                echo "<td>" . $row['idx']."</td>";
                echo "<td>" . $row['position_name']."</td>";
                echo '<td><a href="positions.php?id='. $row['idx'].'&mode=update">수정</a></td>';
                echo '<td><a href="positions.php?id='. $row['idx'].'&mode=delete">삭제</a></td>';
                echo "</tr>";
            }
            mysqli_free_result($result);
        ?>

    </table>
    <hr>
</div>

<?php require_once ('../layout/tail.php');?>

<a id="backtotop" href="#top"><i class="fa fa-chevron-up"></i></a>
<!-- JAVASCRIPTS -->
<script src="layout/scripts/jquery.min.js"></script>
<script src="layout/scripts/jquery.backtotop.js"></script>
<script src="layout/scripts/jquery.mobilemenu.js"></script>
<!-- IE9 Placeholder Support -->
<script src="layout/scripts/jquery.placeholder.min.js"></script>
<!-- / IE9 Placeholder Support -->
</body>
</html>


위와 같이 하나의 파일에서 두개의 파일(Form 전송파일: 파일 A, Action 처리 파일 : 파일 B)의 역할을 동시에 하는 것은 바람직한 코딩은 아니다.

그냥 이렇게 코딩하는 것도 있더라 라고 알아두면 좋을 거 같다.

'Web 프로그램 > PHP 응용 및 활용' 카테고리의 다른 글

[PHP] 쿠키와 세션, 그리고 보안  (0) 2015.05.27
[PHP] 홈페이지 설정 정보 확인  (0) 2015.04.28
PHP 기본 함수  (0) 2015.03.07
[PHP] 한글자르기 substr  (0) 2015.01.04
IP 체크  (0) 2014.05.18
블로그 이미지

Link2Me

,
728x90

줄 앞/끝 공백제거


TEXT 자료를 편집하다보면 줄 앞의 공백을 일괄적으로 제거해야 할 때가 있다.

이런 경우에는 EditPlus 를 이용하면 정말 편하다.





블로그 이미지

Link2Me

,
728x90

EditPlus 보기 설정


작업하면서 보기 설정을 아래처럼 해두면 좀 편하다.


블로그 이미지

Link2Me

,
728x90

EditPlus 정규식


개발자 분에게 물었더니 정규식 찾아서 공부를 좀 하라고 하신다. 

정규식은 기본적으로 Ctrl + H를 눌러서 나온 화면에다가 정규식 체크를 해야 한다.


찾기할 때나 바꾸기 할때 대소문자 체크하는 옵션도 필요하면 체크를 해야 한다.


아래사항은 인터넷을 검색하여 찾고 정리한 사항이며, 이것과 엑셀을 적절히 조합해서 사용하면 훌륭하게 원하는 결과값을 뽑아낼 수 있다. 

^  : 행의 시작 (start)
      모든 소스 앞에 일괄적으로 문자를 넣고 싶다면 찾을말에 ^ 바꿀말에 바꿀말 입력 
      ^aaa : 문자열의 처음에 aaa를 포함하는 것을 찾아라

      ^" : 첫글자가 "로 시작하는 걸 찾아라.

$  : 행의 마지 (end)
      (^.*$) : 한 라인 전체 
      aaa$ : 문자열의 끝에 aaa를 포함하는 것을 찾아라 

       "$ : " 로 끝나는 것을 찾아라.

. 모든 문자 

* 바로 왼쪽에 있는 문자(직전의 선행문자)가 0번 또는 여러번 일치하는 문자 
     be* : b, be, bee 등을 찾는다 
     * : 직전의 선행문자가 없으므로 임의의 문자열 및 공백 문자열도 해당됨 
     .* : 직전의 선행문자가 모든 문자이므로 공백문자열을 제외한 문자열


+ 바로 왼쪽에 있는 문자(직전의 선행문자)가 1번 또는 그 이상 일치하는 문자 
     be+ : be, bee 등을 찾는다. b를 찾지는 않는다 
     [A-Z]+ : 대문자로만 이루어진 문자열 
     like.+ : 직전 선행문자가 . 이므로 like에 하나 이상의 문자가 포함하는 문자열을 찾아라 
                likeley, likehood 등은 찾지만 like는 찾지 않는다 
                만약 like를 포함하여 찾고자 한다면 like.* 를 사용하면 된다 

? 바로 왼쪽에 있는 문자(직전의 선행문자)가 0번 또는 1번 일치하는 문자 
      be? : b, be를 찾는다. 

| or를 의미 
     a|b|c : a, b, c 중 하나 
     korean|japan|chinese : korean, japan, chinese 중 하나 

\ 는 특수 문자를 문자 자체로 해석하도록 하는 Escape 문자로 사용된다. 
     ? 자체를 찾으려고 하면 \? 와 같이 사용되어야 한다. 
     . 자체를 찾으려고 하면 \. 과 같이 사용되어야 한다. 

\n 줄바꿈 문자를 찾는다 
     모든 소스뒤에 일괄적으로 문자를 넣고 싶다면 찾을 말에 \n 바꿀말에 바꿀말+\n 

\t 탭 문자를 찾는다.

[] 대괄호안에 들어간 문자/숫자와 일치하는 모든 것을 찾아라 
      [ab] : a 또는 b가 포함된 문자 
      [0-9] : 숫자를 모두 찾아라 

[^] 대괄호안에 들어간 문자/숫자를 제외한 모든 것을 찾아라 
      [^0-9] : 숫자를 제외한 모든 문자 
      [^a-z] : 소문자를 제외한 문자 
      [^abc] : a 또는 b 또는 c를 제외한 문자 
      [^>]* : >가 아닌 모든 문자 

{} brace : {}내의 숫자는 바로 왼쪽에 있는 문자(직전의 선행문자)가 나타나는 횟수 또는 범위 (EditPlus에서는 미지원) 
     a{3} : aaa 만 해당 
     ab{2,3} : abb, abbb 만 해당 

() 정규식내에서 패턴을 그룹화할 때 사용 


^[0-9]+\. : 01. , 02. , 004. 등 숫자. 이 포함된 문자열을 찾아라 

x1[a-z,0-9,.,-,\t]* : x1으로 시작하고 영문, 숫자, ., -, 탭을 포함하는 문자 
(src=")([a-z]*)(.files/dic.gif") : src="로 시작하고 .files/dic.gif"로 끝나는 문자열을 검색 

'주민번호 13자리'를 '*************'로 바꾸는 정규식 패턴 
[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] 
Editplus의 정규식은 [0-9]{13} 처럼 반복 패턴을 인식하지 못함 


DB_Insert_SMS_User_aspx_03= "이름"; --> 이름 으로 변경하고자 할때 사용하는 정규식 
찾는말 : [_a-zA-Z0-9 ]*[=]?[\t| ]*"(.*)"[\t| ]*;[\t| ]*$ 
바꿀말 : \1 


 

찾는 말: (\.)\n   : 마침표(.)이 포함된 행을 찾아라. 자막에서 마지막에 마침표(.)가 들어간 걸을 제거하고자 할때 유용

바꿀 말: \n       : 마침표를 제거하라

 

찾는 말: ^\-([^ ])  : 행의 첫줄이 하이픈(-)으로 되어 있고 칸 띄기가 안된 것([^ ])을 찾아라

바꿀 말: - \1       : 하이픈(-) 다음에 한칸 띄기를 하라.  

                           \1은 첫번째 괄호묶음을 실행하라

                           \2는 두번째 괄호묶음을 실행하라



 


블로그 이미지

Link2Me

,
728x90


[PHP] 문자열 치환하기


str_replace(), substr_replace() 함수


string str_replace(string needle, string str, string haystack) ;

str_replace() 함수는 haystack 의 데이터 안에서 needle 의 데이터(교체할 문자열)를 찾아 str 의 데이터(대체문자열)로 모두 변경해준다.

$string = "안녕하세요. 좋은 아침 입니다.\n" ;

echo str_replace("아침", "저녁", $string) ;

// "아침"을 "저녁"으로 치환 한다.

결과 : 안녕하세요. 좋은 저녁 입니다.


$str = "<textarea cols='50' rows='7' name='text' >".str_replace('<br>','\r\n',$row[text])."</textarea>";


<textarea name="content"></textarea>
<?php

    $clean_content = htmlspecialchars($_POST[content], ENT_QUOTES);
    $clean_content = str_replace("\r\n","<br/>",$clean_content); //줄바꿈 처리
    $clean_content = str_replace("\u0020","&nbsp;",$clean_content); // 스페이스바 처리
?>


<?php
include "connect.php"; //mysql DB접속
$tblName = sample; // 테이블명
$query="SELECT * FROM $tblName;"; // 테이블에 있는 모든 자료 쿼리, 보통은 필요한 항목만 지정하는게 좋음
$result=mysql_query($query, $connect); //쿼리문입력
$row = mysql_fetch_array ($result); //연관배열만들기
$content = nl2br($row['content']);  // Textarea 영역 개행문자 처리

// 폼에서 받아온 데이터에 개행처리된 문자열을 자동으로 <br />태그를 붙여주는 역할을 하는 함수
echo $row['content'];
?>


string substr_replace(string string, string replacement, int start, int [length]) ;

substr_replace() 함수는 string 의 데이터를 start 번째 문자부터 length 길이 만큼을 replacement 의 데이터로 변경한다.

$string = "안녕하세요. 좋은 아침 입니다.
echo substr_replace($string, "저녁", strpos($string, "아침"), 6);

결과 : 안녕하세요. 좋은 저녁 입니다.

'Web 프로그램 > PHP 문법' 카테고리의 다른 글

[PHP기초] PHP 파일 다루기  (0) 2014.11.28
[PHP기초] fopen 파일 열기  (0) 2014.09.11
[PHP] 문자열 나누기  (0) 2014.05.09
[PHP] 문자열 붙이기  (0) 2014.05.08
[PHP] 조건문 처리  (1) 2014.05.06
블로그 이미지

Link2Me

,
728x90

[PHP] 문자열 나누기


특정 문자열로 문자열 나누기    

split(), explode() 함수


array explode(string seprarator, string string) ;
array split(string pattern, string string, int [limit]) ;
두 함수 모두 결과가 배열로 반환된다.

차이점은 explode 가 정규식 패턴을 사용하지 않아 좀 처리속도가 빠르다 한다.


$date = "2010/09/13" ;

list($year, $month, $day) = explode("/",$date) ;

// "/" 를 기준으로 $date 값을 $year, $month, $day 로 나누어 배열로 반환한다



$datetime = "2010/09/13 23:45:46" ;

list($year, $month, $day, $hour, $minute, $second) = split("[/ :]", $datetime) ;

// split("[/ :]", $datetime) 함수에서 [/ :] 를 구분자로 나누어 배열 list 에 값을 대입한다.
echo "$year 년 $month 월 $day 일 $hour 시 $minute 분 $second 초" ;

'Web 프로그램 > PHP 문법' 카테고리의 다른 글

[PHP기초] PHP 파일 다루기  (0) 2014.11.28
[PHP기초] fopen 파일 열기  (0) 2014.09.11
[PHP] 문자열 치환하기  (0) 2014.05.10
[PHP] 문자열 붙이기  (0) 2014.05.08
[PHP] 조건문 처리  (1) 2014.05.06
블로그 이미지

Link2Me

,
728x90

[PHP] 문자열 붙이기


두개의 string을 합치는 연결연산자 . 을 사용한다는 것을 기억하자!


<?php

$a 
"Hello ";
$b $a "World!"// 연결연산자 "."로 연결하여 반환 "Hello World!"

$a "Hello ";
$a .= "World!";     // 오른쪽 인수를 왼쪽인수에 덧붙인다 "Hello World!"
?>


<?php
echo "thr"."ee";       // prints the string "three"

echo "twe" . "lve";    // prints the string "twelve"

echo 1 . 2;             // prints the string "12"

echo 1.2;               // prints the number 1.2

echo 1+2;              // prints the number 3

?>


<?php
$contentsaddr = 'http://test.com/rvproject/web/data/'.$new_file;

?>

'Web 프로그램 > PHP 문법' 카테고리의 다른 글

[PHP기초] PHP 파일 다루기  (0) 2014.11.28
[PHP기초] fopen 파일 열기  (0) 2014.09.11
[PHP] 문자열 치환하기  (0) 2014.05.10
[PHP] 문자열 나누기  (0) 2014.05.09
[PHP] 조건문 처리  (1) 2014.05.06
블로그 이미지

Link2Me

,
728x90

PHP에서 조건문 처리



PHP 이건 C언어이건, 엑셀 VBA 이건간에

조건은 반드시 True 와 False 값이 반환되도록 구성해야 한다.

조건이 여러개인 경우에는  AND 나 OR 명령을 사용해 다중 조건을 처리하도록 구성해야 한다.


<?php if(조건) { 조건이 true } else { 조건이 false }; ?>를
<?php 조건? true: false;?>로 간략히 사용할 수 있다.

<?php if(조건문) : ?>true<?php endif; ?> 로 표현하는 것은 대체문법이다.


<?php  ?>  : PHP 문법을 사용하기 위해서는 PHP 파서를 사용해야 한다.


echo $saved == 7 ? "saved is 7" : "saved is not 7";

// 조건이 True 이면 saved is 7

// 조건이 False 이면 saved is not 7



PHP에서 문자열을 출력할때 echo 를 사용한다.

PHP 명령어는 세미콜론 (;)으로 끝난다.


<?php if ($a == 5): ?>A는 5와 같다<?php endif; ?>
* 조건문이 맞을 때만 출력된다.


= 는 대입 연산자 이고

== 는 비교 연산자 이다.


비교연산자

연산자 

설 명

==

같다 

!= 

같지 않다 

크다 

작다 

>= 

크거나 같다 

<= 

작거나 같다 









논리 연산자


연산자 

설 명

&&

and 

and 

낮은 우선순위 and 

||

or 

Or 

낮은 우선순위 or 

Not 

xor

Exclusive or 










'Web 프로그램 > PHP 문법' 카테고리의 다른 글

[PHP기초] PHP 파일 다루기  (0) 2014.11.28
[PHP기초] fopen 파일 열기  (0) 2014.09.11
[PHP] 문자열 치환하기  (0) 2014.05.10
[PHP] 문자열 나누기  (0) 2014.05.09
[PHP] 문자열 붙이기  (0) 2014.05.08
블로그 이미지

Link2Me

,
728x90

db환경설정 파일위치



_var/db.info.php 파일에 해당 db 설정이 들어있다.




'Web 프로그램 > 킴스큐RB' 카테고리의 다른 글

킴스큐 함수  (0) 2015.03.01
최고관리자 비밀번호 변경  (0) 2014.08.14
글 등록자만 수정버튼 보이게 하기  (0) 2014.07.19
킴스큐RB 모듈 등록  (0) 2014.07.07
킴스큐 RB 모듈 설치 및 삭제  (0) 2014.04.05
블로그 이미지

Link2Me

,
728x90

킴스큐 RB 모듈 설치 및 삭제



킴스큐 RB 게시판 모듈 설치 및 삭제방법을 몰라서 헤매는 경우가 있어서 포스팅을 해둔다.

자주 사용하는게 아니라 어쩌다가 사용하는 것이라서 사용법을 몰라서 종종 헤매는 경우가 많아서 틈틈히 필요한 것을 포스팅 해둘 생각이다.


모듈 설치하는 방법




모듈 삭제하는 방법



'Web 프로그램 > 킴스큐RB' 카테고리의 다른 글

킴스큐 함수  (0) 2015.03.01
최고관리자 비밀번호 변경  (0) 2014.08.14
글 등록자만 수정버튼 보이게 하기  (0) 2014.07.19
킴스큐RB 모듈 등록  (0) 2014.07.07
db환경설정 파일위치  (0) 2014.05.04
블로그 이미지

Link2Me

,