ereg_replace함수는 정규 표현식을 이용하여 문자열을 치환할 수 있다.

저장될 변수 = ereg_replace ("정규표현식", "치환될문자", 문자열);
->정규표현식에 해당되는 패턴부분이 치환될 문자로 치환된다


<?
$a="abcde";
$b=ereg_replace ("[b-d]", "x", $a); //b에서 d까지의 문자를 x로 치환

echo $b;
?>
결과는
axxxe



이메일주소와 홈페이지주소 자동링크
이메일주소 정규표현식을 이용하면쉽게 자동링크를 시켜 줄수가 있다.
우선 이메일주소는 어떤문장속에 있는 것이기 때문에
정규표현식에서 시작과 끝을 의미하는 ^와 $는 제거한다.
그리고 자동링크를 위해
ereg_replace함수에 정규표현식을 넣어준다.

<?
$ex="^[-_a-z0-9]+(\.[-_a-z0-9]+)*@[_a-z0-9]+(\.[_a-z0-9]+)+$";
$b=ereg_replace($ex, " ", $a);
?>
그런데 여기서 무어으로 치환해 주어야 할까?
ereg_replace함수에서는 \\라는 특수문자를 사용하여 정규표현식에 해당하는
패턴의 내용을 그대로 사용할 수가 있는데,
\\0은 전체의 내용을 그대로 받아오게 한다

<?
$a="제 이멜주소는 naver@nate.com 입니다";
$ex="[-_a-z0-9]+(\.[-_a-z0-9]+)*@[_a-z0-9]+(\.[_a-z0-9]+)+";
$b=ereg_replace($ex, "<a href='mailto:\\0'>\\0</a>", $a);
echo $b;
?>

홈페이지주소도 마찬가지로 하면된다
<?
$a="제 이멜주소는 naver@nate.com 입니다";
$b="제 홈페이지 주소는 http://taeker.com 입니다";
$ex="[-_a-z0-9]+(\.[-_a-z0-9]+)*@[_a-z0-9]+(\.[_a-z0-9]+)+";
$ex2="http://[_a-z0-9]+(\.[_a-z0-9]+)*(/[^\\\/:\*\"<>\|]+(\.[^\\\/:\*\"<>\|]+)*)*/?";
$c=ereg_replace($ex2, "<a href='\\0' target=_blank>\\0</a>", $b);
echo "$c ;
?>









+ Recent posts