정규식으로 글자를 없애고 싶습니다.
본문
http://blog.naver.com/hamchosarang?Redirect=Log&logNo=221317214975
http://blog.naver.com/helloworld0x?Redirect=Log&logNo=220944150703
http://blog.naver.com/mujigaeo127?Redirect=Log&logNo=221341144490
http://blog.naver.com/jini2877?Redirect=Log&logNo=221278183881
http://blog.naver.com/youngda1004?Redirect=Log&logNo=221140284734
http://blog.naver.com/powerblog3?Redirect=Log&logNo=221336159804
http://blog.naver.com/scabbard2?Redirect=Log&logNo=221235756752
문자의 패턴은 이러합니다.
제가 원하는 형식은
http://blog.naver.com/anedthh/221334136984
http://blog.naver.com/hamchosarang/221317214975
http://blog.naver.com/helloworld0x/220944150703
http://blog.naver.com/mujigaeo127/221341144490
http://blog.naver.com/jini2877/221278183881
http://blog.naver.com/youngda1004/221140284734
http://blog.naver.com/powerblog3/221336159804
http://blog.naver.com/scabbard2/221235756752
즉 ?Redirect=Log&logNo= 이 문자열을 없애고 싶은데
$blog_link = "http://blog.naver.com/akaka1357?Redirect=Log&logNo=221304504196";
$blog_link = str_replace("?Redirect=Log&logNo=", "/", $blog_link);
echo $blog_link;
이런식으로 str_replace를 사용하여 문자열을 자르면 잘 됩니다.
다만 위에서 글짜는 네이버에서 api로 가져온 배열인데
이게 문자열로 인식이 되지 않는것 같습니다.
동일한 str_replace로 해당 문자열 ?Redirect=Log&logNo= 을 없애려 했으나
지워지지않고 그대로 출력되었습니다.
그래서 정규식을 통해서 지우면 된다고 검색을 통해 알게되었는데
정규식을 전혀 할 줄 몰라서 팁이라도 얻고싶어서 질문남깁니다.
가지고온 배열을 루프하며 변수에 preg_replace() 함수를 사용하여
정규식으로 글자를 치환해서 넣고 싶습니다.
for($b = 0; $b < count($blog['items']); $b++){
$blog_link = $blog['items'][$b]['link'];
$blog_link = preg_replace("?Redirect=Log&logNo=", "/", $blog_link);
echo $blog_link.'<br>';
}
해당 배열 자체가 echo 로 출력하면 문자로 그대로 나오지만
이상하게 str_replace() 함수로는 글자가 치환되지않습니다.
!-->!-->!-->!-->답변 1
$text = trim('
http://blog.naver.com/hamchosarang?Redirect=Log&logNo=221317214975
http://blog.naver.com/helloworld0x?Redirect=Log&logNo=220944150703
http://blog.naver.com/mujigaeo127?Redirect=Log&logNo=221341144490
http://blog.naver.com/jini2877?Redirect=Log&logNo=221278183881
http://blog.naver.com/youngda1004?Redirect=Log&logNo=221140284734
http://blog.naver.com/powerblog3?Redirect=Log&logNo=221336159804
http://blog.naver.com/scabbard2?Redirect=Log&logNo=221235756752
');
$list = explode("\r\n", $text);
$text = '';
foreach ($list as $value) {
$text .= str_replace('?Redirect=Log&logNo=', '/', $value) . "\r\n";
}
echo '<pre>' . $text . '</pre>';
결과
http://blog.naver.com/hamchosarang/221317214975
http://blog.naver.com/helloworld0x/220944150703
http://blog.naver.com/mujigaeo127/221341144490
http://blog.naver.com/jini2877/221278183881
http://blog.naver.com/youngda1004/221140284734
http://blog.naver.com/powerblog3/221336159804
http://blog.naver.com/scabbard2/221235756752