search
HomeBackend DevelopmentPHP Tutorialphp urlencode() function implements URL encoding analysis_PHP tutorial

php urlencode() function implements URL encoding analysis_PHP tutorial

Jul 13, 2016 am 10:57 AM
phpurlurlencodeChinesefunctionexistaccomplishcodingparsechange

The urlencode() function in PHP is to convert Chinese into string encoding, so that it will not cause the Chinese URL to be garbled or wrong when opened in the browser. Let me introduce to you how to use urlencode() Coding is some nuts and bolts.

urlencode
(PHP 4, PHP 5)

urlencode — encode a URL string

Report a bug Description
string urlencode ( string $str )
This function makes it easy to encode a string and use it in the request part of the URL, and it also makes it easy to pass variables to the next page.

Report a bug parameter

str
The string to encode.

Report a bug return value

Returns a string in which all non-alphanumeric characters except -_. will be replaced with a percent sign (%) followed by two hexadecimal digits, and spaces are encoded as plus signs ( +). This encoding is the same as the encoding of WWW form POST data, and the same encoding as the application/x-www-form-urlencoded media type. For historical reasons, this encoding differs from the RFC1738 encoding (see rawurlencode()) in encoding spaces as plus signs (+).

What is URLEncode:

This tool implements two methods of Encode and Decode respectively.

Chinese -> Encode of GB2312 -> %D6%D0%CE%C4
Chinese -> UTF-8 Encode -> %E4%B8%AD%E6%96%87

URLEncode in Html:
In the html file encoded as GB2312,
/中文.rar -> The browser automatically converts to -> /%D6%D0%CE%C4.rar
Note: Firefox does not have good support for Chinese URLs in GB2312 Encode because it sends URLs in UTF-8 encoding by default, but the ftp:// protocol is fine. I tried it. I think this should be regarded as a bug in Firefox.

In the html file encoded as UTF-8,
/中文.rar -> The browser automatically converts to -> /%E4%B8%AD%E6%96%87.rar

URLEncode in PHP:

The code is as follows Copy code
 代码如下 复制代码

//GB2312的Encode
echo urlencode(“中文-_. “).”n”; //%D6%D0%CE%C4-_.+
echo urldecode(“%D6%D0%CE%C4-_. “).”n”; //中文-_.
echo rawurlencode(“中文-_. “).”n”; //%D6%D0%CE%C4-_.%20
echo rawurldecode(“%D6%D0%CE%C4-_. “).”n”; //中文-_.
?>

//Encode of GB2312

echo urlencode("中文-_. ")."n"; //%D6%D0%CE%C4-_.+
echo urldecode(“%D6%D0%CE%C4-_. “).”n”; //Chinese-_.
echo rawurlencode("中文-_. ")."n"; //%D6%D0%CE%C4-_.%20
echo rawurldecode(“%D6%D0%CE%C4-_. “).”n”; //Chinese-_.

?>

All non-alphanumeric characters except -_. will be replaced with a percent sign (%) followed by two hexadecimal digits. The difference between urlencode and rawurlencode: urlencode encodes spaces as plus signs (+)

rawurlencode encodes spaces as plus signs (%20)

If you want to use UTF-8 Encode, there are two methods:
 代码如下 复制代码

$url = ‘/中文.rar’;
echo urlencode(mb_convert_encoding($url, ‘utf-8′, ‘gb2312′)).”n”;
echo rawurlencode(mb_convert_encoding($url, ‘utf-8′, ‘gb2312′)).”n”;
//http%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar
?>

 代码如下 复制代码

function parseurl($url=”")
{
$url = rawurlencode(mb_convert_encoding($url, ‘gb2312′, ‘utf-8′));
$a = array(“%3A”, “%2F”, “%40″);
$b = array(“:”, “/”, “@”);
$url = str_replace($a, $b, $url);
return $url;
}
$url=”ftp://ud03:password@ud03.kinoko.name/中文/中文.rar”;
echo parseurl($url);
//ftp://ud03:password@ud03.kinoko.name/%D6%D0%CE%C4/%D6%D0%CE%C4.rar
?>

1. Save the file as a UTF-8 file and use urlencode or rawurlencode directly. 2. Use the mb_convert_encoding function.
The code is as follows Copy code
$url = ‘/中文.rar’; echo urlencode(mb_convert_encoding($url, ‘utf-8′, ‘gb2312′)).”n”; echo rawurlencode(mb_convert_encoding($url, ‘utf-8′, ‘gb2312′)).”n”; //http%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar ?>
Example:
The code is as follows Copy code
function parseurl($url=””) { $url = rawurlencode(mb_convert_encoding($url, ‘gb2312′, ‘utf-8′)); $a = array(“%3A”, “%2F”, “%40″); $b = array(“:”, “/”, “@”); $url = str_replace($a, $b, $url); return $url; } $url=”ftp://ud03:password@ud03.kinoko.name/中文/中文.rar”; echo parseurl($url); //ftp://ud03:password@ud03.kinoko.name/%D6%D0%CE%C4/%D6%D0%CE%C4.rar ?>

URLEncode in JavaScript:

The code is as follows
 代码如下 复制代码

%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20

Copy code

 代码如下 复制代码

/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar

%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20


encodeURI does not encode the following characters: ":", "/", ";", "?", "@" and other special characters.

The code is as follows Copy code


/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar
Note:

PHP supports changing the parameter separator to the semicolon recommended by W3C through the arg_separator.ini directive. Unfortunately most user agents do not send form data in semicolon delimited format. A simpler solution is to use & instead of & as the delimiter. You don't need to modify PHP's arg_separator for this. Leave it still & and just use htmlentities() or htmlspecialchars() to encode your URL.
http://www.bkjia.com/PHPjc/632093.html
www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632093.htmlTechArticleIn php, the urlencode() function is to convert Chinese into string encoding, so that it will not cause Chinese URLs There are problems with garbled characters or errors when opening in the browser. Let me introduce to you how to use...
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP Performance Tuning for High Traffic WebsitesPHP Performance Tuning for High Traffic WebsitesMay 14, 2025 am 12:13 AM

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

Dependency Injection in PHP: Code Examples for BeginnersDependency Injection in PHP: Code Examples for BeginnersMay 14, 2025 am 12:08 AM

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

PHP Performance: is it possible to optimize the application?PHP Performance: is it possible to optimize the application?May 14, 2025 am 12:04 AM

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

PHP Performance Optimization: The Ultimate GuidePHP Performance Optimization: The Ultimate GuideMay 14, 2025 am 12:02 AM

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

PHP Dependency Injection Container: A Quick StartPHP Dependency Injection Container: A Quick StartMay 13, 2025 am 12:11 AM

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Dependency Injection vs. Service Locator in PHPDependency Injection vs. Service Locator in PHPMay 13, 2025 am 12:10 AM

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHP performance optimization strategies.PHP performance optimization strategies.May 13, 2025 am 12:06 AM

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHP Email Validation: Ensuring Emails Are Sent CorrectlyPHP Email Validation: Ensuring Emails Are Sent CorrectlyMay 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools