değişken adı nokta

2 Cevap php

Ben string.Php skor altında olan nokta yerini almaktadır sorguda nokta ile değişken geçirerek. Peki nasıl ben adına nokta sahip olduğu değişken adı koruyabilirsiniz

http://localhost/sample.php?one.txt=on&two.txt=on

sample.php

$ Ret = $ _REQUEST ;/ ['one.txt'] / Çalışmıyor

2 Cevap

Noktalar değişken adlarını geçerli değil çünkü PHP içine one.txt adresinin değişken adını dönüştürmektedir nedeni one_txt olduğunu.

Daha fazla ayrıntı için, PHP Documentation bakalım:

Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Sen (_ için .) değişim için hesap Ya ve $_REQUEST['one_txt'] kontrol ya da HTML formu yerine geçerli bir değişken ismi geçmektedir yapabilirsiniz.

Edit:

Michael Borgwardt yorumuyla ilgili takip etmek, buradan metin var PHP's documentation about handling variables from external sources:

Gelen değişken isimleri içindeki noktalar

Typically, PHP does not alter the names of variables when they are passed into a script. However, it should be noted that the dot (period, full stop) is not a valid character in a PHP variable name. For the reason, look at it:

<?php
$varname.ext;  /* invalid variable name */
?>

Now, what the parser sees is a variable named $varname, followed by the string concatenation operator, followed by the barestring (i.e. unquoted string which doesn't match any known key or reserved words) 'ext'. Obviously, this doesn't have the intended result.

For this reason, it is important to note that PHP will automatically replace any dots in incoming variable names with underscores.

Bu gerçekten PHP özel bir şeydir.

Kullan $ _SERVER ['QUERY_STRING']

$get = array();
foreach(explode('&', $_SERVER['QUERY_STRING']) as $part)
    {
    $part = explode('=', $part);
    if($key = array_shift($part))
        {
        $get[ $key ] = implode('', $part);
        }
    }
print_r($get);

Result for your example Array ( [one.txt] => on [two.txt] => on )