Beklendiği gibi PHP'nin 'addslashes' davranmak değil

0 Cevap php

Bu deli sürüş olmuştur, ama ben bir cevap bulmak için görünmüyor olabilir. Biz bazen ağ sürücüleri için haritalama Windows samba yollarını içerecek bir teknik bilgi tabanı çalıştırın.

Örneğin,: \\servername\sharename

Birbirimizi iki ters eğik çizgi varsa yolları dahil ettiğinizde 'addslashes' çalışırken, onlar düzgün kaçtı değildir. Benim beklenen sonuç "\\\\servername\\sharename", ancak "\\servername\\sharename" döndürür olacaktır. Daha sonra 'stripslashes' çalışırken Açıkçası, çift ters eğik çizgi önek tek bir çizgi olduğunu. Ben de bir str_replace("\\", "\", $variable); ancak ben beklediğiniz "\servername\sharename" zaman döndürür "\\servername\sharename" kullanarak denedim.

Addslashes ile Yani, çift tersbölülerden ilk seti sayar ve str_replace ile tek bir, kodlanmış Tersbölünün içine çift ters eğik çizgi değiştirir.

Biz veritabanı ekleme için addslashes ve stripslashes çalıştırmanız gerekir; pg_escape_string kullanarak bizim özel durumda çalışmaz.

Bu Apache, PHP 5.3.1 üzerinde çalışıyor.

EDIT: Example Code
$variable = 'In the box labeled Folder type: \\servername\sharename';
echo addslashes($variable);
This returns: In the box labeled Folder type: \\servername\\sharename

EDIT: Example Code #2
$variable = 'In the box labeled Folder type: \\servername\sharename';
echo str_replace('\\', '\', $variable);
This returns: In the box labeled Folder type: \servername\sharename

Ben de (beklediğiniz gibi) tek tırnak veya çift tırnak kullanarak bana farklı sonuçlar vermez belirtmek isterim. Birini veya her ikisini kullanarak bana aynı kesin sonuçlar verir.

Herkes belki ne yapabilirim herhangi bir öneriniz var mı?

0 Cevap