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

preg_replace # 폴더 인식문제 채택완료

망고프리 2년 전 조회 1,938

안녕하세요.

특정 디렉토리에 대괄호가 들어가면

$img_path_dir  = "/volume/[0001] 이모티콘";

$files = glob($img_path_dir.'/*.*');

 

인식이 안되어 폴더 안에 파일 리스트가 보여지지 않아

아래 처럼하면 폴더가 인식되어 파일 리스트가 보여집니다.

$img_path_dir       = "/volume/[0001] 이모티콘";

$img_path_dir       = preg_replace('~[\[?{]~','[$0]',$img_path_dir); // 대괄호 인식문제 해결

$files                   = glob($img_path_dir.'/*.*');

 

그런데 # 들어간 폴더는 어떻게 해야 되는지 모르겠네요

$img_path_dir       = "/volume/최종화 #나는";

$img_path_dir       = preg_replace('~[\[?{]~','[$0]',$img_path_dir); // # 인식 시키기

$files                   = glob($img_path_dir.'/*.*');

natsort($files); // 보기 좋게 정렬 
foreach ( $files as $file ) // 반복 
{
        echo "<img src='{$file}'><br>";
}

감사합니다.

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

답변 2개

채택된 답변
+20 포인트
웅푸
2년 전

$img_path_dir       = preg_replace('~[\[?{]~','[$0]',$img_path_dir); // # 인식 시키기

요디렉토리경로  문제 있는듯 ~이게뭐죠? 그리고 {  ]  이건 ;;;;---;;;

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

답변에 대한 댓글 6개

웅프
2년 전
'/([#\[\]{}?])/' 이렇게 바꿔보세요' ', ' ', ' ', ' ', ' ', '?' 이렇게 생각하시면됩니다.
망고프리
2년 전
답변 감사합니다
적용 해보았는데 #들어간 폴더 이름을 인식 못하네요
웅프
2년 전
$img_path_dir = preg_replace('/([#\[\]{}?])/', '[$1]', $img_path_dir); 요렇게 해보세요
망고프리
2년 전
안녕하세요.
아래처럼 적용해도 #들어간 폴더를 인식못하네요

$img_path_dir = preg_replace('/([#\[\]{}?])/', '[$1]', $img_path_dir); 요렇게 해보세요
웅프
2년 전
$img_path_dir = preg_replace('/([#\[\]{}?])/', '\\\\$1', $img_path_dir);

이렇게 해보시구 않되면

$img_path_dir = "/volume/최종화 #나는";
$img_path_dir = preg_replace('/([\[?{}#])/', '[$1]', $img_path_dir); // 대괄호 및 # 인식 문제 해결
$files = glob($img_path_dir.'/*.*');
natsort($files); // 보기 좋게 정렬

foreach ($files as $file) {
echo "<img src='{$file}'><br>";
}
망고프리
2년 전
안녕하세요.
그래도 안되네요
그동안 답변 달아주셔서 너무 감사했습니다.
다른 방법을 찾아서 해볼게요
감사합니다.

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

preg_replace() 보다는

https://www.php.net/manual/en/function.glob.php

부터 검토해 보세요.

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

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

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

로그인