정규표현식 어디가 잘못 되었을까요? 채택완료
$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개
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개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
preg_replace('/\&wr_id\=/', '/', $list[$idx][$i]['href']);
답변에 대한 댓글 3개
$list[$idx][$i]['href'] = preg_replace('/\&wr_id\=/', '/', $list[$idx][$i]['href']);
5.6 7.2에서 둘다 테스트 해봤습니다만..
다른 곳에 원인이 있는게 아닌가 싶습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
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