테스트 사이트 - 개발 중인 베타 버전입니다

정규표현식 어디가 잘못 되었을까요? 채택완료

sinbi 6년 전 조회 3,456

$list[$idx][$i]['href'] 상태

https://homzzang.com/bbs/board.php?bo_table=free&wr_id=312

 

 

$list[$idx][$i]['href'] = preg_replace( "/\/bbs\/board\.php\?bo_table=/" , '/', $list[$idx][$i]['href'] ); 상태

https://homzzang.com/free&wr_id=312

 

$list[$idx][$i]['href'] = preg_replace( "/\&wr_id=/" , '/', $list[$idx][$i]['href'] ); 상태

https://homzzang.com/free&wr_id=312  

 

저 갈색 코드가 이상한지 아래처럼 표현이 안 되는데,

https://homzzang.com/free/312 처럼 표현하려면 ?  

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

url은 정규표현식보다 파싱함수를 쓰는 것이 더 정확하고 편리합니다.

 

</p>

<p>$url = '<a href="https://homzzang.com/bbs/board.php?bo_table=free&wr_id=312';" target="_blank" rel="noopener noreferrer">https://homzzang.com/bbs/board.php?bo_table=free&wr_id=312';</a></p>

<p>$array = parse_url($url);

parse_str($array['query'], $param);</p>

<p>echo "{$array['scheme']}://{$array['host']}/{$param['bo_table']}/{$param['wr_id']}";</p>

<p>// <a href="https://homzzang.com/free/312" target="_blank" rel="noopener noreferrer">https://homzzang.com/free/312</a></p>

<p>

 

http://php.net/manual/en/function.parse-url.php">http://php.net/manual/en/function.parse-url.php

http://php.net/manual/en/function.parse-str.php">http://php.net/manual/en/function.parse-str.php

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
덕분에 잘 해결했습니다. 주말 잘 보내세요. ^^

PS.
php7.2.10에선 아래처럼 해야 출력이 되네요.

$array = parse_url($list[$idx][$i]['href']);
//print_r2($array);
$param = array();
parse_str($array['query'], $param);
//print_r2($param);
$list[$idx][$i]['href'] = "{$array['scheme']}://{$array['host']}/{$param['bo_table']}/{$param['amp;wr_id']}";
// https://homzzang.com/free/312

댓글을 작성하려면 로그인이 필요합니다.

오옹 파싱하시남유!! arrey 결과값을 보면서 하나씩 해야 ㅠ_ㅠ 크흡 고통임

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
파싱은 아니고, 그냥 주소만 간격하게 보여주려구요. ㅎ

댓글을 작성하려면 로그인이 필요합니다.

6년 전

preg_replace('/\&wr_id\=/', '/', $list[$idx][$i]['href']);

 

https://www.phpliveregex.com/#tab-preg-replace

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

s
sinbi
6년 전
아래처럼 넣어봤는데, 여전히 같은 증상이네용. ^^;

$list[$idx][$i]['href'] = preg_replace('/\&wr_id\=/', '/', $list[$idx][$i]['href']);
볼피드
6년 전
제가 테스트해봤을 땐 본문에 있는걸로도 잘 되네요.
5.6 7.2에서 둘다 테스트 해봤습니다만..
다른 곳에 원인이 있는게 아닌가 싶습니다
s
sinbi
6년 전
이상하게 & 기호만 안 되네요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인