【问题标题】:Stripslashes() on array数组上的 Stripslashes()
【发布时间】:2014-03-01 21:13:11
【问题描述】:

我在数组上使用 stripslashes() 时遇到了一些问题。

这是我的数组:

$tabRegion = array(
1=>"Alsace",
2=>"Aquitaine",
3=>"Auvergne",
4=>"Basse-Normandie",
5=>"Bourgogne",
6=>"Bretagne",
7=>"Centre",
8=>"Champagne-Ardenne",
9=>"Corse",
10=>"Franche-Comté",
(...)
21=>"Provence-Alpes-Côte d'Azur",
22=>"Rhône-Alpes",);

为了stripslash,我已经修改了这个PHP代码:

foreach ($tabRegion as $key=>$region) {
$tabRegion[$key] = stripslashes($region);
}

在文件中之后,我用它生成 URL 例如:

if (file_exists('../region/$tabRegion[$region]/$fonction/messages/$lecturefichier (...)

但事实是代码总是选择数组的最后一个值(“Rhône-Alpes”)...我不知道为什么。

你有什么想法吗? :)

谢谢!

【问题讨论】:

  • if (file_exists('...')) -- 这将始终返回 FALSE,因为在运行代码时不会插入实际变量值。请改用双引号。 if (file_exists("...")).
  • 在您的示例数据中甚至没有任何反斜杠可以去除。即使有,你也应该从源头上解决这个问题——修复任何将它们放在首位的废话机制。
  • 感谢您的回答。我会努力的。

标签: php arrays stripslashes


【解决方案1】:

您正在使用 foreach 循环,那么您必须在该循环中生成 url。 在该循环中,您将获得每个区域值 $tabRegion = 数组( 1=>"阿尔萨斯", 2=>“阿基坦”, 3=>“奥弗涅”, 4=>“巴斯-诺曼底”, 5=>“勃艮第”, 6=>“布列塔尼”, 7=>“中心”, 8=>“香槟-阿登”, 9=>“科西嘉”);

foreach ($tabRegion as $key=>$region) 
{

 $tabRegion[$key] = stripslashes($region);
 print "<br>".$region;

}

输出将是: 阿尔萨斯
阿基坦
奥弗涅
下诺曼底
勃艮第
布列塔尼
中心
阿登香槟
科西嘉

因此,您必须在该 for 循环中插入以下行: if (file_exists('../region/$tabRegion[$region]/$fonction/messages/$lecturefichier (...)

【讨论】:

    【解决方案2】:

    您在foreach 循环中使用$region 变量,您应该知道它在您的脚本中被视为任何其他变量。比如:

    $fruit = 'Banana';    
    
    foreach(array('Tomato', 'Orange') as $fruit) {
        echo $fruit;
    }
    
    echo $fruit; // it will output 'Orange';
    

    【讨论】:

    • 谢谢你的回答,我明白了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    相关资源
    最近更新 更多