답변:
str_replace()
배열을 취할 수 있으므로 다음을 수행 할 수 있습니다.
$new_str = str_replace(str_split('\\/:*?"<>|'), ' ', $string);
또는 다음을 사용할 수 있습니다 preg_replace()
.
$new_str = preg_replace('~[\\\\/:*?"<>|]~', ' ', $string);
str_replace()
over preg_replace()
(또는 그 반대) 의 장점은 무엇입니까 ?
'~[\\+><-]~'
합니다 (참고 -
)입니다. 대시 ( -
)는 정규식 메타 문자이므로 문자 클래스 (안에있는 모든 것 []
) 에서 이스케이프하거나 전략적으로 배치해야합니다 . 이 답변을 참조하십시오 : stackoverflow.com/a/7604888/396458
preg_replace () 사용할 수 있습니다 . 다음 예제는 명령 줄 php를 사용하여 실행할 수 있습니다.
<?php
$s1 = "the string \\/:*?\"<>|";
$s2 = preg_replace("^[\\\\/:\*\?\"<>\|]^", " ", $s1) ;
echo "\n\$s2: \"" . $s2 . "\"\n";
?>
산출:
$ s2 : "문자열"
HTML 태그를 두 개의 다른 대체 결과로 바꿔야하는 상황이있었습니다.
$trades = "<li>Sprinkler and Fire Protection Installer</li>
<li>Steamfitter </li>
<li>Terrazzo, Tile and Marble Setter</li>";
$s1 = str_replace('<li>', '"', $trades);
$s2 = str_replace('</li>', '",', $s1);
echo $s2;
결과
"스프링클러 및 화재 방지 설치", "Steamfitter", "Terrazzo, 타일 및 대리석 세터",
나는 당신이 이것을 돌보고 있다고 생각합니다.
// example
private const TEMPLATE = __DIR__.'/Resources/{type}_{language}.json';
...
public function templateFor(string $type, string $language): string
{
return \str_replace(['{type}', '{language}'], [$type, $language], self::TEMPLATE);
}