이전에이 작업을 기억하지만 코드를 찾을 수 없습니다. 나는 str_replace를 사용 str_replace(':', ' ', $string);
하여 다음과 같은 하나의 문자를 대체합니다. 그러나 \/:*?"<>|
각각에 대해 str_replace를 수행하지 않고 다음 문자를 모두 대체하고 싶습니다 .
답변
str_replace()
배열을 취할 수 있으므로 다음을 수행 할 수 있습니다.
$new_str = str_replace(str_split('\\/:*?"<>|'), ' ', $string);
또는 다음을 사용할 수 있습니다 preg_replace()
.
$new_str = preg_replace('~[\\\\/:*?"<>|]~', ' ', $string);
답변
이렇게 :
str_replace(array(':', '\\', '/', '*'), ' ', $string);
또는 최신 PHP (5.4 이상)에서는 약간 덜 장황한 것입니다.
str_replace([':', '\\', '/', '*'], ' ', $string);
답변
예를 들어 search1을 replace1로 바꾸고 search2를 replace2로 바꾸려면 다음 코드가 작동합니다.
print str_replace(
array("search1","search2"),
array("replace1", "replace2"),
"search1 search2"
);
// 출력 : replace1 replace2
답변
str_replace(
array("search","items"),
array("replace", "items"),
$string
);
답변
단일 문자 만 바꾸려면 다음을 사용해야합니다. strtr()
답변
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, 타일 및 대리석 세터”,
