用php识别'§'

时间:2013-04-03 12:59:52

标签: php string escaping explode

我有一个字符串,我想使用字符'§'将它们转换为数组:

<?php
$string="element1§element2§element3";
$array=explode("&sect;",$string); //tried also &#167; and §,double and single quotes
print_r($array);
?>

输出始终如下:

Array ( [0] =>element1§element2§element3)

如何让php识别'§'符号以便将字符串拆分成数组?

编辑: 我使用file()函数从文件中获取字符串,并通过foreach迭代数组。如果我使用我自己的例子它可以工作,但是exernal文件没有。

我的字符串的rowurlencode()如下:

element1%A7element2%A7element3

4 个答案:

答案 0 :(得分:2)

完美适合我

ini_set('default.charset', 'UTF-8');
header('Content-type: text/html;charset=UTF8');

$string="element1§element2§element3";
$array=explode("§",$string);

print_r($array); //Array ( [0] => element1 [1] => element2 [2] => element3 ) 

答案 1 :(得分:1)

rawurlencode您的字符串,以查看此字符的实际代码。

然后将此代码用作分隔符

$array=explode("\xA7",$string);

答案 2 :(得分:0)

如果您真的使用过:

<?php
  $string="element1§element2§element3";
  $array=explode("§",$string);
  print_r($array);
?>

这会奏效。我的猜测是,在您的情况下,$string来自不同的来源,并且与您的PHP文件的字符编码不同。

答案 3 :(得分:0)

感谢你的常识,我找到了答案。 简单地说,我改变了我的explode()函数:

$array=explode("%A7",rawurlencode($string));

其中“%A7”是“§”的rawurlencode。