Saya memiliki bidang formulir HTML yang $_POST["url"]
memiliki beberapa string URL sebagai nilainya. Nilai contoh adalah:
https://example.com/test/[email protected] https://example.com/test/1234?basic=2&[email protected] https://example.com/test/[email protected] https://example.com/test/[email protected]&testin=123 https://example.com/test/the-page-here/1234?someurl=key&[email protected]
dll.
Bagaimana saya bisa mendapatkan hanya email
parameter dari URL / nilai ini?
Harap perhatikan bahwa saya tidak mendapatkan string ini dari bilah alamat browser.
php
url-parsing
Asim Zaidi
sumber
sumber
/(email=\w\@\w\.\w)/
or more advanced matching techniques. Just giving you the idea. Seepreg_match
function: php.net/manual/en/function.preg-match.phpJawaban:
Anda dapat menggunakan
parse_url()
danparse_str()
untuk itu.Jika Anda ingin mendapatkan
$url
PHP secara dinamis, lihat pertanyaan ini:Dapatkan URL lengkap dalam PHP
sumber
Semua parameter setelahnya
?
dapat diakses menggunakan$_GET
array. Begitu,akan mengekstrak email dari url.
sumber
https://[email protected]
$email = $_GET['email']; $email === '[email protected]';
Gunakan metode parse_url () dan parse_str () .
parse_url()
akan mengurai string URL ke dalam array asosiatif dari bagian-bagiannya. Karena Anda hanya menginginkan satu bagian URL, Anda dapat menggunakan pintasan untuk mengembalikan nilai string hanya dengan bagian yang Anda inginkan. Selanjutnya,parse_str()
akan membuat variabel untuk setiap parameter dalam string kueri. Saya tidak suka mencemari konteks saat ini, jadi memberikan parameter kedua menempatkan semua variabel ke dalam array asosiatif.sumber
Gunakan
$_GET['email']
untuk parameter dalam URL. Gunakan$_POST['email']
untuk data yang diposting ke skrip. Atau gunakan_$REQUEST
untuk keduanya. Selain itu, seperti yang disebutkan, Anda dapat menggunakanparse_url()
fungsi yang mengembalikan semua bagian URL. Gunakan bagian yang disebut 'permintaan' - di sana Anda dapat menemukan parameter email Anda. Info lebih lanjut: http://php.net/manual/en/function.parse-url.phpsumber
address bar
. URL-URL ini hanya berupa stringsIN
the code.Anda dapat menggunakan kode di bawah ini untuk mendapatkan alamat email setelah? dalam URL
sumber
Seperti disebutkan dalam jawaban lain, solusi terbaik adalah menggunakan
parse_url()
Anda perlu menggunakan kombinasi
parse_url()
danparse_str()
.The
parse_url()
URL mengurai dan kembali komponennya bahwa Anda bisa mendapatkan query string menggunakanquery
kunci. Maka Anda harus menggunakanparse_str()
string kueri parse dan mengembalikan nilai ke dalam variabel.Anda juga dapat melakukan pekerjaan ini menggunakan regex .
preg_match()
Anda dapat menggunakan
preg_match()
untuk mendapatkan nilai spesifik dari string kueri dari URL.preg_replace()
Anda juga dapat menggunakannya
preg_replace()
untuk melakukan pekerjaan ini dalam satu baris!sumber
Saya membuat fungsi dari jawaban @Ruel . Anda bisa menggunakan ini:
Contoh:
Terima kasih kepada @Ruel
sumber
Ini berfungsi baik untuk saya menggunakan php
sumber
sumber
Jawaban yang jauh lebih aman yang saya terkejut belum disebutkan di sini:
filter_input
Jadi, dalam hal pertanyaan, Anda dapat menggunakan ini untuk mendapatkan nilai email dari parameter dapatkan URL:
$email = filter_input( INPUT_GET, 'email', FILTER_SANITIZE_EMAIL );
Untuk jenis variabel lain, Anda ingin memilih filter yang berbeda / sesuai seperti
FILTER_SANITIZE_STRING
.Saya kira jawaban ini melakukan lebih dari apa yang ditanyakan oleh pertanyaan - mendapatkan data mentah dari parameter URL. Tetapi ini adalah pintasan satu baris yang hasilnya sama dengan ini:
Mungkin juga membiasakan meraih variabel dengan cara ini.
sumber
Di Laravel, saya menggunakan:
sumber
Fungsi dinamis yang mengurai url string dan mendapatkan nilai parameter kueri yang diteruskan dalam URL
Panggil Function untuk mendapatkan hasil
sumber
Untuk mendapatkan parameter dari string URL, saya menggunakan fungsi berikut.
Jika ada banyak string URL, maka Anda dapat menggunakan loop untuk mendapatkan parameter 'email' dari semua string URL tersebut dan menyimpannya dalam array.
sumber