문제

그래서 저는 다음과 같은 PHP 코드가 있습니다.

$message = 'Here is the result: %s';

방금 %S를 예로 사용했습니다. 기본적으로 거기에 갈 모든 것에 대한 자리 표시 자입니다. 그런 다음 문자열을 함수로 전달하고 해당 함수가 %s를 값으로 바꾸기를 원합니다.

이것을 달성하기 위해 무엇을해야합니까? Regex를 수행하고 preg_replace () 또는 무언가를 사용해야합니까? 아니면 더 간단한 방법이 있습니까?

도움이 되었습니까?

해결책

실제로 사용할 수 있습니다 Sprintf 형식화 된 문자열을 반환하고 변수를 자리 표시 자의 위치에 놓는 함수.
또한 문자열이 형식화되고 표시되는 방식에 대한 큰 힘을 제공합니다.

$output = sprintf("Here is the result: %s for this date %s", $result, $date);

다른 팁

사용하는 경우 %s, 나는 그것이 printf가 문자열에 사용하는 것과 같은 자리 표시 자라고 생각합니다. 그래서 당신은 할 수 있습니다 :

$text = sprintf($message, "replacement text");

적어도 작동해야한다고 생각하십시오 ...

$find = array(
     '#name#',
     '#date#'
);
$search = array(
     'someone\'s name',
     date("m-d-Y")
);
$text_result = str_replace($find, $search, $text);

나는 보통 내 코드에 이것을 사용하고 일부 텍스트/html 파일에서 $ 텍스트를 가져오고 $ text_result를 출력으로 만듭니다.

당신이 사용할 수있는 sprintf, C와 매우 유사한 방식으로 작동합니다. printf 그리고 sprintf 기능.

동적 변수 시도 :

$placeholder = 's';
str_replace("%".$placeholder,$$placeholder,$message);

그러면 %s는 $ s, 변수로 대체됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top