Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengatasi Penggantian Automatik PHP Titik dalam Nama Permintaan dan Kuki?

Bagaimanakah Saya Boleh Mengatasi Penggantian Automatik PHP Titik dalam Nama Permintaan dan Kuki?

Linda Hamilton
Linda Hamiltonasal
2024-12-26 19:33:19177semak imbas

How Can I Work Around PHP's Automatic Replacement of Dots in Request and Cookie Names?

Penggantian Automatik PHP bagi Titik dalam Permintaan dan Nama Kuki: Adakah Terdapat Penyelesaian?

PHP secara automatik menggantikan titik (.) dalam permintaan dan nama kuki dengan garis bawah (_), tingkah laku yang boleh menimbulkan masalah.

Mengapa PHP melakukan ini? Menurut PHP.net, titik bukan aksara yang sah dalam nama pembolehubah PHP, seperti yang ditunjukkan dalam contoh di bawah:

$varname.ext;  /* invalid variable name */

Untuk mengelakkan isu penghuraian ini, PHP menggantikan titik dengan garis bawah.

Malangnya, tiada cara langsung untuk melumpuhkan tingkah laku ini. Penyelesaiannya adalah untuk menukar garis bawah kembali secara manual kepada titik dalam skrip PHP anda menggunakan fungsi manipulasi rentetan seperti str_replace:

<?php
$request_uri = $_SERVER['REQUEST_URI'];
$get_vars = $_GET;

// Convert underscores back to dots in GET variables
foreach ($get_vars as $key => $value) {
  $key = str_replace('_', '.', $key);
  $get_vars[$key] = $value;
}

// Echo the modified GET variables
print_r($get_vars);
?>

Selain titik, PHP juga menggantikan aksara berikut dengan garis bawah:

  • chr(32) ( ) (ruang)
  • chr(46) (.) (titik)
  • chr(91) ([) (kurung segi empat terbuka)
  • chr(128) - chr(159) (pelbagai)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengatasi Penggantian Automatik PHP Titik dalam Nama Permintaan dan Kuki?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn