php接收+号等特殊字符参数的问题
本篇文章介绍的内容是php接收+号等特殊字符参数的问题 ,现在分享给大家,有需要的朋友可以看一下
记录一个有些奇怪的问题,关于参数“+”号在传输过程中是否被转义。
1、get方式请求
使用get方式,php收到的参数中“+”会变为空格,看说明应该是执行了urldecode,如果需要恢复为“+”号,需要对接收到的参数进行urlencode。
通过使用curl和浏览器方式,接收到的参数均把+号转为了空格。
请求地址为http://ip/xx?aa=+889
使用 $_REQUEST['aa']
接收到的参数值为“ 889”
,参数+号被转为了空格,如果希望得到原样的+889
,则需要使用urlencode($_REQUEST)
来进行获取。
但是,如果传输的时候,使用的是http://ip/xx?aa=%2B889
,即自行对+号进行了url编码,那$_REQUEST
接收到的就是+889
的参数。
2、post方式请求
使用post方式,curl执行接收到的参数也是将+号转为了空格;但是通过html form模拟的post,接收到的却是完整的+号(form提交的时候自动对参数进行了url编码?)。
接收参数使用$_POST。
如果在curl的时候,post的参数使用编码后的%2B889
,那php接收到的就是+889
。
3、结论
因此,得出一个结论:
php在接收到参数的时候,会自动对参数进行一次urldecode解码操作,因此,如果传送的参数未进行url编码,那特殊字符(例如+号)就会被解码为空格,导致参数接收不正确。
如果希望php正确的接收到包含特殊字符的参数,那client与server之间就需要有一个约定,例如client发送的参数都是经过url编码后的参数,这样server接收到的参数就是正确的参数。
Atas ialah kandungan terperinci php接收+号等特殊字符参数的问题 . Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data
