2013-08-05 3 views
-2

문자열의 숫자를 새 숫자로 바꾸는 데 문제가 있습니다. 설명은 여기에 있습니다. 문제는 파일을 업로드 할 때 파일이 이미있는 동일한 디렉토리에 파일 이름을 저장한다는 것입니다. 따라서 서버는 파일 이름에 (1)을 추가하여 파일 이름을 저장합니다.PHP에서 대괄호가 들어있는 문자열에서 숫자를 바꾸는 방법

$file_name = 'Haller(1).jpg'; 

여기에 입력 한 샘플 문자열입니다. 지금 내가 뭘해야 내가 PHP에서이 작업을 수행 할 수있는 방법이

$number = 5; 
$file_name = 'Haller(1).jpg'; 

출력

$file_name = 'Haller(5).jpg'; 

입니다. 나는 정규 표현식이 너무 약하다.

+0

에서 여러 값을 대체 할 수 preg_replace이다 http://php.net/manual/en/function.preg-replace.php을 사용할 수 있습니다로 변경 전 분명히 연구하지만 나는 너무 서두르다. 덕분에 내가주의를 기울일거야. –

답변

2
$number = 5; 
$file_name = 'Haller(1).jpg'; 

echo preg_replace('/\(\d+\)/', '(' . $number . ')', $file_name); // Haller(5).jpg 
  • \d 일치 자리를 도와주세요.
0

만 1 개 번호를 교체해야 난 단지 귀하의 요구 사항 때문에 \d에 놓여있다 preg_replace

$number = 5; 
$file_name = 'Haller(1).jpg' 
$return = preg_replace("/\d/", $number, $file_name); 
echo $return; 

메모를 시도 할 수 있습니다. 당신은 여러 자리 숫자를 기대하는 경우 \d+

0

당신은 당신이 한 번

<?php 
$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/', 
        '/^\s*{(\w+)}\s*=/'); 
$replace = array ('\3/\4/\1\2', '$\1 ='); 
echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27'); 
?> 
관련 문제