|
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
//공백 제거
$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ü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);
?>
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ü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);
?>
'개발도구 > PHP,ASP,JSP,SCRIPT' 카테고리의 다른 글
[php] PHP MVC - codeigniter (1) | 2012.12.05 |
---|---|
[php] twitter 자신의 글 html 에 표출하기 (0) | 2012.03.22 |
[php] php 공백제거 와 urlencode 유니코드 (0) | 2012.02.01 |
[php] usr/local/apache2/conf/php.ini register_globals (0) | 2012.01.30 |
[PHP] 특정문자 replace (0) | 2012.01.27 |