次のコードをphp 5.3に変換する方法を知っている人はいますか?
if (eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$', $this->browser_languages[$i]) && isset($this->catalog_languages[$key])) {
ありがとう
-ジェームズ
次のコードをphp 5.3に変換する方法を知っている人はいますか?
if (eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$', $this->browser_languages[$i]) && isset($this->catalog_languages[$key])) {
ありがとう
-ジェームズ
preg_match()
i (PCRE_CASELESS)
修飾子を使用することをお勧めします。
ereg 関数は非推奨になり、PCRE 関数に置き換えてください
http://www.php.net/manual/en/ref.pcre.php
http://php.net/manual/en/reference.pcre.pattern.posix.php
編集 :
eregi から preg_match に変更するには、区切り文字として機能する文字を選択し (私はしばしば # を選択します)、区切り文字の後に i フラグを追加する必要があります (これは大文字と小文字を区別しないことを意味します)。
あなたの例:
if (eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$', $this->browser_languages[$i])
&& isset($this->catalog_languages[$key])) {}
となります :
if (preg_match('#^(' . $value . ')(;q=[0-9]\\.[0-9])?$#i', $this->browser_languages[$i])
&& isset($this->catalog_languages[$key])) {}
これは最低限必要なものです ( を使用する必要があるかもしれpreg_quote()
ないことに注意してください。$value
ただし、今のところ複雑なことに注意するために追加していません)。
もう 1 つの注意点は、(eregi ではなく) ereg を変換する場合は、i フラグを追加する必要がないことです。