PHP 사용 URL SPACE를 %20으로 바꾸기
URL의 모든 공백 인스턴스를 %20으로 바꾸려고 합니다.정규식을 어떻게 하죠?
감사해요!
문자열을 다른 문자열로 바꾸려면 정규식을 사용할 필요가 없습니다. 사용하는 것만으로도 충분합니다.
$new = str_replace(' ', '%20', $your_string);
하지만, 당신이 그것보다 조금 더 많은 것을 원한다면, 그리고 아마도 당신이 URL로 작업하고 있다면, 당신은 그 기능을 살펴봐야 합니다.
저는 당신의 목적을 위해 urlencode() 대신 rawurlencode()를 사용해야 한다고 생각합니다.
견본을 만들다
$image = 'some images.jpg';
$url = 'http://example.com/'
urlencode($str)를 사용하면 결과가 발생합니다.
echo $url.urlencode($image); //http://example.com/some+images.jpg
%20으로 전혀 변경되지 않습니다.
하지만 rawurlencode(이미지))를 사용하면 생성됩니다.
echo $url.rawurlencode(basename($image)); //http://example.com/some%20images.jpg
자신의 것을 구현하려고 하지 말고 사용하십시오.게으름 피우다.
이 작업을 수행하는 방법에는 다음과 같은 여러 가지 옵션이 있습니다.
urlencode()
또는 - http 프로토콜의 URL을 인코딩하도록 설계된 함수str_replace()
"중장비" 문자열 교체strtr()
보다 더 나은 성능을 제공할 것입니다.str_replace()
여러 문자를 바꿀 때preg_replace()
정규식 사용(호환성이 거의 없음)
strtr()
교체를 원할 경우"\t"
그리고." "
와 함께"%20"
:
$replace_pairs = array(
"\t" => '%20',
" " => '%20',
);
return strtr( $text, $replace_pairs)
preg_replace()
여기서는 공간만 대체하거나 선택의 여지가 거의 없습니다.~ ~
다시 공백 및 탭 바꾸기~[ \t]~
또는 모든 종류의 공간. ~\s~
:
return preg_replace( '~\s~', '%20', $text);
또는 문자열을 이렇게 교체해야 할 때"\t \t \t \t"
단 하나로%20
:
return preg_replace( '~\s+~', '%20', $text);
저는 당신이 정말로 수동 문자열 교체를 사용하고 깨지지 않는 공간과 같은 더 많은 유형의 공백을 처리하고 싶어한다고 가정했습니다.
)
public static function normalizeUrl(string $url) {
$parts = parse_url($url);
return $parts['scheme'] .
'://' .
$parts['host'] .
implode('/', array_map('rawurlencode', explode('/', $parts['path'])));
}
$result = preg_replace('/ /', '%20', 'your string here');
또한 사용을 고려할 수도 있습니다.
$result = urlencode($yourstring)
다른 특별한 등장인물들로부터도 탈출하기 위해.
언급URL : https://stackoverflow.com/questions/9240556/using-php-replace-spaces-in-urls-with-20
'programing' 카테고리의 다른 글
Java의 mariadb 커넥터가 다른 언어의 커넥터보다 mariadb에 더 빨리 연결되는 이유는 무엇입니까? (0) | 2023.07.31 |
---|---|
Angular CLI 프로젝트를 업그레이드하는 방법은 무엇입니까? (0) | 2023.07.31 |
iOS 6 기기로 원격 디버깅하는 동안 Safari에 "No Inspectable Applications"(검사 가능한 응용 프로그램 없음)가 표시되는 이유는 무엇입니까? (0) | 2023.07.31 |
Delphi 응용 프로그램을 테스트하는 가장 좋은 방법 (0) | 2023.07.31 |
프로토타입 정의 함수에서 개인 멤버 변수 액세스 (0) | 2023.07.31 |