본문 바로가기

개발도구/PHP,ASP,JSP,SCRIPT

[PHP] 예약어 - 실제 코드에서 사용중인 중요소스

preg_replace() 는 Perl 방식의 빠른 정규 표현식 변환으로 PHP4 에서 사용할 수 있는 함수 입니다.

ereg_replace 함수 보다 몇배는 빠른듯 합니다.



그렇다고 ereg_replace  함수를 무시 해도 되나용? 절대 안됩니다 !!!

방식은 ereg_replace() 를 알아야 합니다.

정규 표현식을 알아야 가능 합니다. 요기 게시판에서 정규 로 검색 하시고 다쉬 공부하세요 !!!



Usage: mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit])

subject 문자열에서 pattern을 replacement 로 변경 시킨다.



조건:

모든 파라미터 는 배열이어야 한다.

pattern 의 배열 수와 replacement 배열 수는 같아야 한다!







모든 것은 배열 이어야 합니다. 아래 2번째 예제를 보시면 , array 를 사용하여 만든 것을 보실 수 있습니다.



(fuck) 를 왜 이렇게 사용하냐구요? 그럼 정규 표현식을 다쉬 공부 하세용 ^^

왜 *fuck* 나 &fuck& 나 이런식으로 사용하지 않냐구요? 정규 로 검색 하시고 공부 하세용 !!!





아래의 소스를 사용해서 욕설필터링 함수나 클래스를 만들 수 있습니다.

만들어 보세용 ^^



i 나 si 나 e 옵션은 정확히 어케 사용하는지 모르겠슴당.

알면 다쉬 올리죵 ^^







<?php

$intext="fuck u damn 나쁜 새끼 damn 훔 지 랄 정말 씨 발 ";

$patterns = array ("/(fuck|damn|씨 발|세끼|새끼|지 랄|염병|미친|죽은|죽습니다|죽었습니다)/");
$replace = array ("**");
$intext=preg_replace ($patterns, $replace, $intext);
echo
$intext."<P>";

$intext2="fuck u damn 나쁜 새끼 damn 훔 지 랄 정말 씨 발 ";

$patterns2 = array ( // 패턴 11개 ★
                    
"(fuck)",
                    
"(damn)",
                    
"(씨 발)",
                    
"(세끼)",
                    
"(새끼)",
                    
"(지 랄)",
                    
"(염병)",
                    
"(미친)",
                    
"(죽은)",
                    
"(죽습니다)",
                    
"(죽었습니다)"
                    
);
$replace2 = array ( // 변경하는 것도 11개 ★
                    
"**",
                    
"*",
                    
"*",
                    
"*",
                    
"*",
                    
"*",
                    
"*",
                    
"*",
                    
"*",
                    
"*",
                    
"*"
                    
);
$intext2=preg_replace ($patterns2, $replace2, $intext2);
echo
$intext2."<P>";

// 출력은 ** u * 나쁜 * * 훔 * 정말 *

?>




<?php

//공백 제거

$in="tood  net";

$out=preg_replace("/\s+/","",$in);

echo
$out // toodnet

?>





<?php

// 전화 번호 구분 하기  물론 if 문이 들어 가던가..해야죠..3자리 일 경우..

$phone = "03238939383";



$phone = preg_replace("/([0-9]{3,3})([0-9]{3,4})([0-9]+)/", "($1) $2-$3",$phone);



echo
$phone; // (032) 3893-9383



//그외 체크 숫자 $phonenumber =  preg_replace('/[^0-9]/','',$phonenumber);



?>





<?php

$text
="공백 제거 ? 체크       ㅋㅋㅋ 되나 ?";

$splittext = new Array();

while (
$text){

    
preg_match("/[^\s]+",$text);

    if (
$machtes[1]){$splittext[]=$matches[1];}

    
preg_replace("/$matches[1]/","",$text);



    
preg_match("/[\s]+",$text);

    if (
$machtes[1]){$splittext[]=$matches[1];}

    
preg_replace("/$matches[1]/","",$text);

}

?>



<?php

// nl2br() 대용 !!

preg_replace("/\n/", "<BR>\n", $var);

?>



<?php

// (.*) 의 의미는 안의 내용 모두 !

// \1 은 () 안의 내용 처음 것 !

$str="go go go";

$str=preg_replace( "/go(.*)/", "don't go \\1", $str );   

echo
$str; // don't go go go

?>





<?php

// 영문 알파벳을 제외한 모든 문자 지우기 - 한글, 숫자 , 특수 문자 지우기

$old="sdlsddskASSDDS12344sddssddsㄴ잉ㄴㅇ닌이";

$new = preg_replace('/[^a-zA-Z]/','',$old);

echo
$new

?>



<?php

// 영문 알파벳을 제외한 모든 문자 지우기 - 한글, 숫자 , 특수 문자 지우기

$old="이벤트";

$new = preg_replace('/[^a-zA-Z]/','',$old);

echo
$new."<P>";



print
strlen($new);



?>





<?php

// 작은 따옴표 주의 - SQL 입력 시... 물론 메직 쿼터를 사용하면 됨다.

function db_quote($value) {

   return
"'". preg_replace("/'/", "''", $value) ."'"

}

?>





<?php

//$number="40.60";

//$number="40.0";

//$number="40.360";

$number="40.020";

$number=preg_replace("/0+$/","",$number);



echo
$number;



?>



Umr&uuml;che \r\n zu <br />:



$string=preg_replace('/\r\n|\r|\n/', '<br />', $string);



Und anders rum:

$string=preg_replace("=<br(>|([\s/][^>]*)> )\r?\n?=i", "\r\n", $string);





tab 키는 \t 입니다.

<?php

$tree
="kaka    jjj ooo";

$tree=preg_replace("/\t/", "", $tree);

print
$tree;

?>



배열로 만들어 줍니다. preg_split()

<?php

$keywords
= preg_split ("/[\s,]+/", "hypertext language, programming");

print_r($keywords);

// Array ( [0] => hypertext [1] => language [2] => programming )

?>





E-mail Validations (email.php)



<?php

  
if ($submit) {

    
$okay = preg_match(

      
'/^[A-z0-9_\-]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{2,4}$/',

      
$emailfield

    
);

    if (
$okay) {

      echo
"E-mail is validated";

    } else {

      echo
"E-mail is incorrect";

    }

  }else {

?>

<form method="POST" action="email.php">

E-mail address: <input type="text" name="emailfield">

<br><input type="submit" name="submit" value="Validate">

</form>

<?php 

}  

?>



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

<?php

/*********************************\

verifyEmail($email)



Takes the email address as arg1

and returns true on false if it

is valid or not.



\*********************************/

function verifyEmail($email) {

    if(!
preg_match("/^(.+)@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+$/si", $email)) {

        return
false;

    } else {

        return
true;

    }

}

?>

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



http://www.zend.com/zend/tut/tutorial-delin2.php



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



텍스트 내용 중에 링크 자동으로 설정 하기

<?php



if ($row = mysql_fetch_array($result))



{
# add <br> tags to line breaks in the first entry returned by the query above

$text = nl2br($row["text"]);



# convert email addresses to mailto links

$text2 = preg_replace("/([\w\.-]+)(@)([\w\.-]+)/e", "'<a href=\"mailto:\\0\">\\0</a>'", $text);



# convert http urls to hyperlinks

$text3 = preg_replace("/( http:\/\/)([\w\.-]+)/e", "'<a href=\"\\0\" target=\"_blank\">\\0</a>'",

$text2);



# convert www urls to hyperlinks

$text4 = preg_replace("/( www.)([\w\.-]+)/e", "'<a href=\"http://\\0\" target=\"_blank\">\\0</a>'",

$text3);





# print final result

print $text4;}



?>





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



<?



// example data to test (hope it works...)





$data = 'Sonia,



Thank you for inquiring about the eNom Technology Partner (Reseller)

program.

www.tood.net



eNom has many services that are included in our domain services rate, such

as our automated registration www.happy.com that you can customize. Domain

Servers are available, along with URL redirect, registering name servers,

changing name servers and Email Fataqui@ya-right.net forwarding are provided

There are no hidden costs.  Technical Support is available by email or

telephone 6:00 am - 6:00 pm (Pacific Time) Monday through Friday to provide

troubleshooting and domain maintenance without a fee.



Director, Business Development

eNom, Inc.

2002 156th Ave NE #300

Bellevue, WA 98007

  www.me.com/hi.php?mn=0980

Phone (425) 883-8860 ext. 226

FAX    (425) 952-0794



xxx@xxx.com



http://www.eNom.com

"An ICANN Accredited Registrar"

'
;



function
make_links($str)

{



$search = array("!(\s)((f|ht)tps?:\/\/[a-z0-9~#%@\&:=?+\/\.,_-]+[a-z0-9~#%@\&=?+\/_.;-]+)!i",

"!(\s)(www\.[a-z0-9~#%@\&:=?+\/\.,_-]+[a-z0-9~#%@\&=?+\/_.;-]+)!i",

"!(\s)([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})!i",

"!^((f|ht)tps?:\/\/[a-z0-9~#%@\&:=?+\/\.,_-]+[a-z0-9~#%@\&=?+\/_.;-]+)!i",

"!^(www\.[a-z0-9~#%@\&:=?+\/\.,_-]+[a-z0-9~#%@\&=?+\/_.;-]+)!i",

"!^([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})!i");



$replace = array("\\1<a href=\"\\2\" target=\"_blank\">\\2</a>",

"\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>",

"\\1<a href=\"mailto:\\2\">\\2</a>",

"<a href=\"\\1\" target=\"_blank\">\\1</a>",

"<a href=\"http://\\1\" target=\"_blank\">\\1</a>",

"<a href=\"mailto:\\1\">\\1</a>");



return
nl2br(preg_replace($search, $replace, $str));



}



//Usage: pass the $data string to process



echo make_links($data);



?>