2013-09-01 1 views
2

을 업로드 :Blueimp 내가 upcount_name 기능이 정규식을 변경하려면 PHP 스크립트 변경 preg_replace_callback 정규식

protected function upcount_name_callback($matches) { 
    $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1; 
    $ext = isset($matches[2]) ? $matches[2] : ''; 
    return ' ('.$index.')'.$ext; 
} 

protected function upcount_name($name) { 
    return preg_replace_callback('/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/', 
    array($this, 'upcount_name_callback'),$name,1); 
} 

을 blueimp 업로드 스크립트. 이 스크립트는 "image (1) .jpg", "image (2), jpg"등의 고유 한 파일 이름을 얻기 위해 이름을 변경합니다. (대괄호 안에 기본 이름과 번호 사이의 공백을주의하십시오)

이제 "image-1.jpg", "image-2.jpg"로 돌아가고 싶습니다.

답변

1

당신이 고유의 파일이 "이미지 1.JPG", "이미지 2.JPG"등처럼 이름을 한 뜻 아래로 복귀 라인을 변경하려는 경우? 그래서 당신은 동일하게 동작하는 정규 표현식을 변경할 수 있다고 생각 (하지만 형식을 일치)이 같은 경우

return preg_replace_callback('/(?:(?:-([\d]+))?(\.[^.]+))?$/' 

을하지만 완전히 오해가있을 수 있습니다.

+0

내 잘못 ... 내 영어 ... 내 서둘러. 고마워. – morowind

+0

다행스럽게도 도움이 = D – Chris

0

그 모두가 당신이 단순히

protected function upcount_name_callback($matches) { 
     $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1; 
     $ext = isset($matches[2]) ? $matches[2] : ''; 
     return '-'.$index.'.$ext; // replaced this return ' ('.$index.')'.$ext; 
    } 

protected function upcount_name($name) { 
    return preg_replace_callback('/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/', 
    array($this, 'upcount_name_callback'),$name,1); 
} 
+1

내가하려고하지만 APPEND 이미지-1.JPG, 이미지 1 -1.jpg.not counting – morowind

0

여기에서 superguy, 솔루션을 게시하지만 그의 대답은 삭제 된, 그래서 ... 감사 년대 superguy에 여기 게시

/(?:(?:-([\d]+))?(\.[^.]+))?$/ 
+0

오, 나는 오답을 완전히 오해 한 것 같아. – Chris