* PHP를 통해서 원격에 있는 이미지를 긁어오거나 복사하고 싶을 때가 많은데 예외상황이 많을 것이다. 한번 예외상황들에 대해서 적어보고, 특히 php.ini를 마음대로 수정못하는 웹호스팅을 하고 있다면 꽤나 골치 아플 일이 많을 것이다.

 

: 일단 첫번째로 확인해야될 제약사항은 php.ini에서 "allow_url_fopen"이 "on" 되어있어야한다는 것이다. 만약 이것이 on 되어있다면 원격의 파일을 꽤나 쉽게 가져올 수 있다.

 

* copy 함수를 이용해서 원격 이미지 가져오기

: 우선 가장 간단하게 가져올 수 있는 방법은 copy 함수를 쓰는 것이다.

copy("http://remotedomain.com/image.jpg", "/tmp/local.jpg");

: 위와 같이 하면 바로 원격의 파일을 로컬로 복사해서 가져올 수 있다.

 

* file_get_contents, file_put_contents 함수를 이용하는 방법

: 위보다 조금은 복잡하게, 그러나 파일의 내용을 수정하고 싶거나 전체 흐름을 조율하고 싶다면 아래와 같이 할수도 있다.

$img = file_get_contents("http://remotedomain.com/image.jpg");
$save = file_put_contents("/tmp/local.jpg");

: 아니면 fwrite를 쓸수도 있다.

$img = file_get_contents("http://remotedomain.com/image.jpg");
$fp = fopen("/tmp/local.jpg", "w");
fwrite($fp, $img);
fclose($fp)
: fopen을 쓰고 싶다면 다소 복잡해지지만 가능은 하다. 물론 위의 allow_url_fopen이 설정되어있다면 가능한 것이다.
$rf = fopen($url, "r");
$fp = fopen("/tmp/local.jpg", "w");

while(!feof($rf)) {
  fwrite($fp, fread($rf, 1), 1);
}
fclose($rf);
fclose($fp);
 
: 아무튼 php.ini에서 "allow_url_fopen"이 설정되어있는 경우는 쉽게 되지만, 안되어있는 경우에는 별도로 curl을 사용해서 가져와야한다. 위의 방법들을 사용하고 싶다면 php.ini에 allow_url_fopen=on으로 설정하거나, 아파치 등 웹서버 설정에서 overwrite할 수 있다면, .htaccess에서 php_value allow_url_fopen on 등으로 설정하면 된다. (PHP 4.3.4 이상 버전 호환)
 
 
* curl을 이용하는 방법
: 웹서버의 제약이나 php의 제약으로 인하여 위의 allow_url_fopen을 설정할 수 없다면, 원격의 url에 fopen을 사용하지 못하면 직접 접속해서 가져와야할 것이다. 가장 쉽게는 curl을 사용하면 된다.
$fp = fopen("/tmp/loca.jpg", "w");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://remotedomain.com/image.jpg");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_FILE, $fp);

curl_exec($ch);

fclose($fp);
curl_close($ch);
 

 

: 이외에서 http모듈을 사용하는 방법도 있지만, 아무리 막혀있어도 curl에서는 해결이 될 것이므로 이정도면 원격 URL의 파일을 가져오는데에는 성공할것이라 생각한다.

 

원격 URL의 파일을 로컬로 가져오기 끝.

 

출처: https://unikys.tistory.com/345 [All-round programmer:티스토리]

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

특정 날짜가 해당 월의 몇주차인지 계산해주는 함수입니다.

 

사용법 :

$nowJucha = getWeekInfo(date("Y-m-d"));

또는

$nowJucha = getWeekInfo(date("2021-03-17"));

 

function getWeekInfo($_date)
{
    $BASIC_DOW = 1; // 1(mon) ~ 7(sun)
    list($yy, $mm, $dd) = explode('-', $_date);
    
    $dow = date('N', mktime(0, 0, 0, $mm, 1, $yy));
    
    if ($dow <= $BASIC_DOW)
    {
        $diff = $BASIC_DOW - $dow;
        $srt_day = $diff+1;
    } else {
        $diff = 7-$dow;
        $srt_day = $diff + $BASIC_DOW + 1;
    }

    if ($dd < $srt_day)
    {
        $new_date = date('Y-m-d', mktime(0, 0, 0, $mm, 0, $yy));
        return getWeekInfo($new_date);
    } else {
        $wom = ceil(($dd-($srt_day-1))/7);

        // 이곳을 수정하면 원하시는 결과로 리턴하셔도 됩니다.
        $new_date = (int)$mm. '-' .$wom; 
        return $new_date;
    }
}

 

즐프하세요~

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

스케줄러나 업무일지등을 개발하다보면 날짜관련 컨트롤이 필요할때가 많습니다.

이때 애매한게.. 주간 날짜를 구하는거죠..

이번주 시작일과 끝날짜  이전주, 다음주 날짜 범위를 구하는 방법입니다.

 

$today = time();
$week = date("w");

$week_first = $today-($week*86400);
$week_last = $week_first+(6*86400);

지난주 = date("Y-m-d",$week_first-(86400*7))." ~ ".date("Y-m-d",$week_last-(86400*7));
이번주 = date("Y-m-d",$week_first)." ~ ".date("Y-m-d",$week_last);
다음주 = date("Y-m-d",$week_first+(86400*7))." ~ ".date("Y-m-d",$week_last+(86400*7));

 

응용해서 $today 부분을 특정 날짜로 하면 그날짜가 속한 주간 날짜범위를 구하실 수 있습니다.

 

$today = mktimemktime(23,59,59,03,17,2021);

 

이런식으루요~

 

그럼 즐프들 하십시요!

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

자료 검색중 좋은 자료가 있어서 공유드립니다.

(원글 : jung-max.github.io/2020/06/23/Web-1_SpringBoot-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95/)

 

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

 

스프링부트를 처음 시작하기 위한 개발환경 구성에 대해서 설명한다.

JDK 설치

Spring Boot를 사용하기 위해서는 JDK 설치가 선행되어야 한다.

요즘은 오라클의 정책으로 인해서 OpenJDK가 권장된다.

https://github.com/ojdkbuild/ojdkbuild에서 자신의 컴퓨터와 맞는 jdk를 다운받아 설치한다.

java version확인

위와같이 자바 버전이 확인된다면 설치가 성공된 것이다.

이클립스 설치

스프링부트를 사용하기 위한 IDE로서는 IntelliJ IDEA가 가장 좋다고 말한다. 하지만 구독료가 있기 때문에 여기서는 이클립스에 대해서 설명한다.

아래 링크에서 이클립스를 다운받는다.

https://www.eclipse.org/downloads/

설치시 스프링 프레임워크를 사용하기 위해서 JaveEE(Java Plaform, Enterprise Edition)을 설치한다.

JAVA EE

플러그인 설치

STS(Spiring Tool Suite)는 스프링 어플리케이션 개발을 위한 이클립스 기반의 개발환경이다.

이클립스 상단 메뉴중 Help > Eclipse Marketplace…을 선택한다. Find 창에서 STS를 검색한다.

마켓플레이스 목록에서 최신 버전의 STS를 설치한다.

STS 설치

STS 설치시 모든 기능을 선택 후 설치하면 된다.

Gradle 설치

라이브러리 관리를 위한 Gradle을 설치한다. 라이브러리 관리는 크게 Maven과 Gradle이 있지만 여기서는 Gradle을 중심으로 설명한다.

그 이유는 메이븐의 경우 xml로 이루어져 있어 사람이 알아보기는 쉽지만 라이브러리가 추가되거나 각각의 라이브러리가 서로 다른 버전의 라이브러리를 참조하는 종속성을 가지고 있을 경우에는 관리가 어려워지는 문제가 있다.

위에서 STS를 설치한 것처럼 마켓플레이스에서 gradle을 검색해 설치한다. 이미 설치가 되있다면 넘어가도 좋다.

Gradle 설치

Gradle을 설치했다면 거기에 맞는 에디터 또한 설치한다. 여기서는 Minimalist Gradle Editor를 설치한다.

Minimalist Gradle Editor 설치

설치 후 그레이들 파일을 연결한다.

상단 메뉴에서 Windows > Preferences를 선택하고 General > Editors > File Associations 메뉴에서 *.gradle을 찾아서 Minimalist Gradle Editor을 Defauilt로 선택한다.

Minimalist Gradle Editor을 Defauilt로 선택

이클립스 메뉴 변경

아래는 필자가 추천하는 메뉴 구성 변경에 대해서 설명한다.

Customize Perspective 변경하기

Windows > Preferences > Customize Perspective를 선택한다.

Customize Perspective를 선택

Shortcuts 메뉴에서 아래와 같이 선택한다.

Java Shortcuts

Web Shortcuts

패키지 보여주기 변경하기

패키지의 계층 구조를 한눈에 파악하기 위해 패키지 보여주기 방법을 변경한다.

Project Explorer에 ∨ 버튼을 누른 후 Package Presentation > Hierarchical을 선택한다.

Hierarchical을 선택

이클립스 뷰 변경하기

소스코드외 여러 필요한 정보를 보기 위한 화면 구성이다.

Windows > Show View > Other…를 선택한다.

Other... 선택

Console, Problems, Progress, Search, History, Package Explorer을 추가하고 사용하지 않는 메뉴는 삭제한다.

Package Explorer는 Project Explorer뷰 옆으로 이동한다.

이클립스 뷰

프로젝트 인코딩 설정하기

한글등 여러 문제 발생을 피하기 위해서 UTF-8로 인코딩을 설정한다.

Windows > Preferences를 선택한 후 General > Workspace를 선택한다.

Text file encoding을 UTF-8로 변경한 후 OK를 누른다.

UTF-8로 변경

테마 변경하기(다크 테마)

이클립스 상단 메뉴중 Help > Eclipse Marketplace…을 선택한다. Find 창에서 Dark Theme를 검색한다.

Dark Theme

해당 플러그인을 인스톨 후 재시작하면 다크 테마를 적용할 수 있다. 또한 클래식 또는 화이트 테마 역시 선택 가능하다.

추후 테마를 변경하고 싶다면 Windows > Preferences를 선택한 후 DevStyle에서 Color Themes에서 변경 가능하다.

Theme 변경

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

C# 에서 Oracle(오라클) 데이터베이스를 사용하는 예제입니다.

 

C#에서 Oracle을 엑세스하기 위해서는 .NET에서 제공하는 .NET Framework Data Provider for Oracle을 사용하거나 오라클에서 제공하는 Oracle Data Provider for .NET (ODP.NET)을 사용할 수 있다.

이 외에 오랜 방식이지만 OLEDB나 ODBC 방식도 사용할 수 있다.

.NET Data Provider이나 ODP.NET이나 실제 코딩에서 사용하는 방식은 비슷하다.

여기서는 .NET Framework Data Provider for Oracle의 예제를 살펴 보는데,

이 Oralce 드라이버를 사용하기 위해서는 먼저 아래 그림에서 같이 System.Data.OracleClient.dll을 참조(Reference) 추가해야 한다.

 

 

Oracle 데이타베이스 연결 

 

Oracle 데이타베이스를 연결하기 위해서는 OracleConnection 클래스를 사용한다.

Connection 클래스를 생성할 때는 Connection String을 넣어 주어야 하는데,

여기에는 Data Source명, 사용자명, 암호등을 지정해 준다.

아래 예는 ABC 서버에 사용자명 hr 과 암호명 123을 사용하여 오라클 데이타베이스에 접속하는 예이다. 

 


 string strConn= "Data Source=ABC;User Id=hr;Password=123;Integrated Security=no;";
OracleConnection conn = new OracleConnection(strConn);
...
conn.Close();

 

 

Oracle 데이타 INSERT, UPDATE, DELETE 

 

데이타의 삽입, 삭제, 갱신등은 OracleCommand에 해당 SQL문을 지정하여 실행한다.

먼저 OracleConnection을 사용해 Oracle 서버 연결을 한 후, OracleCommand에 INSERT, UPDATE, DELETE 등의 SQL문을 지정하여 실행하면 된다.

아래는 한 ROW를 INSERT하는 예제이다. 

 

 

// .NET Framework Data Provider for Oracle  // 오라클 연결 문자열         private string _strConn = "Data Source=YPC;User Id=hr;Password=hr;Integrated Security=no;"; // 데이타 쓰기         private void btnAdd_Click(object sender, EventArgs e) {

    // 오라클 연결

    OracleConnection conn = new OracleConnection(_strConn);

    conn.Open();

 

    // 명령 객체 생성

    OracleCommand cmd = new OracleCommand();

    cmd.Connection = conn;

 

    // SQL문 지정 및 INSERT 실행

    cmd.CommandText = "INSERT INTO REGIONS VALUES (5, 'Africa')";

    cmd.ExecuteNonQuery();

    conn.Close();

}

 

 

Oracle 데이타 읽기 

Oracle에서 데이타를 가져오기 위해서는 OracleCommand와 OracleDataReader 혹은 OracleDataAdapter 클래스를 사용한다.

OracleDataReader는 연결모드로 데이타를 서버에서 가져오게 되며, 클라이언트에서 루프를 돌며 한 ROW씩 가져오게 된다.

OracleDataAdapter는 한꺼번에 클라이언트 메모리로 데이타를 가져온후 연결을 끊게 되는데, DataGridView와 같은 그리드 컨트롤에 바인딩할 때 유용하다. 

 

// .NET Framework Data Provider for Oracle : 오라클 연결 문자열         private string _strConn = "Data Source=YPC;User Id=hr;Password=hr;Integrated Security=no;"; // 데이타 읽기

 

private void btnGetData_Click(object sender, EventArgs e) {     // 오라클 서버 연결 객체 생성     using (OracleConnection conn = new OracleConnection(_strConn))     {         // 연결

        conn.Open();

 

        // 명령 객체 생성

        OracleCommand cmd = new OracleCommand();

        cmd.Connection = conn;

        cmd.CommandText = "SELECT * FROM employees";

 

        // 결과 리더 객체를 리턴

        OracleDataReader rdr = cmd.ExecuteReader();

 

        // 레코드 계속 가져와서 루핑

        while (rdr.Read()) {

            // 필드 데이타 읽기

            string s = rdr["FIRST_NAME"] as string;

 

            // 데이타를 리스트박스에 추가

            listBox1.Items.Add(s);

        }

        // 사용후 닫음

        rdr.Close();

    }

}

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

해당 페이지로 넘어온 전체 속성값(request, attribute) 를 확인하는 방법입니다.

 

하기 소스를 이용하여 전체값을 출력해보세요~~

 

<% 

out.println("<br/>");

out.println("<전체 request.getAttribute 출력>");

out.println("<br/>");

Enumeration attrs = request.getAttributeNames();

while(attrs.hasMoreElements()){

String attr = (String)attrs.nextElement();

out.println(attr+"<br/>");

}

out.println("<br/>");

 

out.println("<br/>");

out.println("<전제 request.getParameter 출력>");

out.println("<br/>");

Enumeration params = request.getParameterNames();

while(params.hasMoreElements()){

String param = (String)params.nextElement();

out.println("param:"+param+"<br/>");

}

%>



블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,


입력된 숫자를 한글로 표현하기!!



은행사이트 같은데서 많이 보던거죠?


1000000  입력하면  일백만..  이런식으로 표현되어지는..


좀 오래된 소스이지만!.  잘될거에요~~ 


그럼 즐프하세요!!




<html> 

<head> 

<SCRIPT LANGUAGE=\"JavaScript\"> 

<!-- 

function num2han(string) 

hn = new Array(\"영\",\"일\",\"이\",\"삼\",\"사\",\"오\",\"육\",\"칠\",\"팔\",\"구\"); 

hj = new Array(\"\",\"만\",\"억\",\"조\",\"경\",\"해\",\"시\",\"양\",\"구\",\"간\",\"정\",\"재\",\"극\",\"항하사\",\"아승지\",\"나유타\",\"불가사의\",\"무량대수\"); 

ul = new Array(\"영천\",\"영백\",\"영십\",\"영\"); 

tm = new Array(); 


result = \"\"; 


        if(string.charAt(0)==\"-\"){

result = \"마이너스 \";

string = string.substr(1,string.length-1);


        loop_size = Math.ceil(string.length/4); 

        string2 = \"\"; 


        for (count=string.length; count >= 0; count--) 

string2 += string.substring(count,count-1); 


        string = string2; 


        for (A=0;A<loop_size;A++) { 

sum = hj[A] + \" \"; 

                tm[A] = string.substr(A*4,4); 


                tm2 = \"\"; 


                for (count=tm[A].length; count >= 0; count--) 

                tm2 += tm[A].substring(count,count-1); 


tm[A] = tm2; 

                part_jari = tm[A].length; 


                for (D=0;D<10;D++){ 

for (B=0;B<10;B++) tm[A] = tm[A].replace(B,hn[B]); 


if (part_jari == 4) tm[A] = tm[A].charAt(0)+\"천\"+tm[A].charAt(1)+\"백\"+tm[A].charAt(2)+\"십\"+tm[A].charAt(3); 

else if (part_jari == 3) tm[A] = tm[A].charAt(0)+\"백\"+tm[A].charAt(1)+\"십\"+tm[A].charAt(2); 

else if (part_jari == 2) tm[A] = tm[A].charAt(0)+\"십\"+tm[A].charAt(1);              

else tm[A] = tm[A].charAt(0); 


for (C=0;C<4;C++) { 

if (tm[A].match(ul[C])){ part_jari--; tm[A] = tm[A].replace(ul[C],\"\"); } 

}


if (part_jari != 0) tm[A] += sum; 

        

for (loop_size;loop_size>-1;loop_size--) result += tm[loop_size]; 

        

result = result.replace(\"undefined\",\"\") 


        document.form.han.value = result; 

//--> 

</SCRIPT> 

</head> 


<body> 

<form method=post name=form> 

<input type=\"text\" name=\"num\" size=\"10\" onKeyUp=\"num2han(this.form.num.value);\"> 

<input type=\"text\" name=\"han\" size=\"100\" disabled> 

</form> 

</body> 

</html>

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,


Fatal error: Allowed memory size of 134217728 bytes exhausted

( PHP 메모리 부족 에러 )



PHP 프로그래밍중  File I/O 를 다루거나.. 파일 다운로드, 엑셀파일 출력 등을 다루다보면,


위와같은 메모리 부족 에러를 접하게 되는 경우가 있습니다.


PHP 는 기본적으로 메모리 제한 기본값을 128M 로 되어있습니다.


이럴경우 해당 설정 값을 변경해 주면 되는데요..


phpinfo();  명령을 통해서 memory_limit 값을 확인해 보신 후 해당 값을 조정해 주시면 문제를 해결 할 수 있습니다.


그 조치 방법으로는.. php.ini 파일을 찾아서 해당 값을 변경해 주는 방법인데요.


php.ini 파일을 열어보시면 아래와 같은 부분을 찾으실 수 있습니다.



위 값은 제가 기본 128M 인 값을 512M 으로 늘려준 것이구요.


이렇게 변경한 후 아파치를 재기동 하시면 반영이 되어집니다.


혹은 다른 방법으로..


해당 php 파일에서



ini_set('memory_limit','512M');


이와같이 ini_set 명령으로 설정값을 변경 반영하는 방법이 있습니다.


이 방법은 현재 php 파일에서만 유효합니다.


그럼 즐프하세요~

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,


php 에서 ZipArchive 를 사용하려 하는데.. class 'ZipArchive' not found in..  이런 에러가 발생을 한다면?


결국엔 libzip 을 설치해 주어야 합니다.


이는 pecl 을 이용해서 간단히 설치를 할 수도 있지만..  


php.net 에서 최종버전 또는 버전을 선택하여 받아서 설치할 수 있습니다.


centos (리눅스계열) 에서의 설치를 예로 들겠습니다.



1. http://pecl.php.net/package/zip  사이트에 접속하여 사용할 버전을 다운로드 합니다.





2. 파일을 서버에 올린 후 설치 작업을 진행합니다.  (1.13.2 버전을 받은걸로 가정합니다.)


//모듈 이동

#mv zip-1.13.2.tgz /home/


//압축 해제

#tar xvfz zip-1.13.2.tgz


//디렉터리 이동

#cd zip-1.13.2


//phpize 실행

#phpize


//만약 phpize가 오류가 나면 phpinfo에서 include_path 의 위치를 확인합니다.

//저 같은 경우는 extension_dir가 /usr/local/php/lib/php 이였으므로 php 설치 폴더의 위치를 알수 있었습니다.

//혹은 yum install php-devel 등으로 설치하면 됩니다.

#/usr/local/php/bin/phpize


//모듈 configure

./configure --with-php-config=/usr/local/php/bin/php-config --enable-zip && make


//모듈 파일 이동

#cd modules/

#cp zip.so /usr/local/php/lib/php/extensions/ ;마찬가지로 phpinfo에서 extension위치 확인


//extension 경로 추가

#vim /usr/local/apache/conf/php.ini


extension_dir="/usr/local/php/lib/php/extensions"


extension="zip.so" 


//아파치 재시작

#/etc/init.d/httpd restart 



3. phpinfo() 내용을 확인하여.. 정상적으로 설치가 되어졌는지 확인합니다.


이런부분이 확인되어지면 됩니다.


그럼 php 에서 ZipArchive class 를 이용해서 압축, 압축해제 등의 작업을 진행하실 수 있습니다.~


블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

정규표현식의 패턴



프로그램을 하다보면, 정규표현식(정규식)을 사용해야 할 경우가 종종 발생하고는 합니다.


예를들자면, 회원가입시 이메일 주소가 올바른 형태인지 검사한다던지  긴 문자열 중에서 특정한 부분만을 뽑아낸다던지...


이런 상황에서 사용을 하게 되지요.


정규표현식 이라 함은  말그대로 문자열 내의 특정한 규칙을 의미하는 말입니다.  이를 패턴이라고 하기도 하지요.


다음은 정규표현식에서 사용하는 패턴에 사용되는 기호들 입니다.



표현식

 설명 

 ^

 문자열의 시작

 문자열의 종료

 .

 임의의 한 문자 (문자의 종류 가리지 않음)

 단, \ 는 넣을 수 없음

 *

 앞 문자가 없을 수도 무한정 많을 수도 있음

 앞 문자가 하나 이상

 앞 문자가 없거나 하나있음

 []

 문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를 나타낸다. []내에서 ^가 선행하여 존재하면 not 을 나타낸다.

 {}

 횟수 또는 범위를 나타낸다.

 ()

 소괄호 안의 문자를 하나의 문자로 인식 

 |

 패턴 안에서 or 연산을 수행할 때 사용

 \s

 공백 문자

 \S

 공백 문자가 아닌 나머지 문자

 \w

 알파벳이나 숫자

\W 

 알파벳이나 숫자를 제외한 문자

\d 

 숫자 [0-9]와 동일

\D 

 숫자를 제외한 모든 문자

 정규표현식 역슬래시(\)는 확장 문자
 역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고 역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미

(?i) 

 앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않음


위의 기호들을 이용해서 정규표현식의 패턴을 만들어 내는데요.




다음은 자주쓰이는 패턴들 입니다.




표현식

 설명 

 ^[0-9]*$

 숫자만

^[a-zA-Z]*$

 영문자만

 ^[가-힣]*$

 한글만

 ^[a-zA-Z0-9]*$

 영어와 한글만

^[a-zA-Z0-9]+@[a-zA-Z0-9]+$

 이메일 주소 형태인지

^01(?:0|1|[6-9])-(?:\d{3}\d{4})-\d{4}$

 휴대폰번호 검사



위와같은 표현식들을 각각의 언어에 맞추어 검사 또는 치환/추출 을 하실 수 있습니다


PHP 의 경우 preg_match() 함수를 이용해서 패턴에 일치하는 구문이 있는지 확인할 수 있겠지요..


다음은  특정한 문자열에서 정규식에 해당하는 부분이 있는지 확인하는 예제입니다.


<?php
// 패턴 구분자 뒤의 "i"는 대소문자를 구별하지 않게 합니다.
if (preg_match("/php/i""PHP is the web scripting language of choice.")) {
    echo 
"발견하였습니다.";
} else {
    echo 
"발견하지 못했습니다.";
}
?>


[php.net 에서 발췌]


이와 같은 형태로 javascript 나 기타 다른언어에서도 두루두루 활용할 수 있습니다.


오늘은.. 간단한 정규표현식 패턴에 대해서 적어보았습니다.



블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,