它基本上归结为此。我有一个名为$ name的字符串。 $ name通常具有值''blablabla'',该值来自外部资源,因此它被封装在两个单引号中。如果我自己声明这个变量,它看起来像这样:
$name = "''blablabla''";
我将删除这些单引号:
$name[0] = '';
$name[1] = '';
$name[mb_strlen($name, 'UTF-8')-1] = '';
$name[mb_strlen($name, 'UTF-8')-2] = '';
(用索引取消设置字符串不起作用) 所以现在我的$ name值为“blablabla”而没有引号。 这是我的问题。 当我查看源代码时,在“blablabla”之前有一些奇怪的字符。 我怎么处理这个? 并且,有没有办法重新索引我的字符串(例如array_values对数组的作用)?
修改 最后我使用了这段代码:
$name = mb_substr($name, 2, -2, 'UTF-8');
答案 0 :(得分:0)
$name = "''foo''";
$name = substr($name, 2, -2);
echo $name; # foo
'
)是单字节的。 PHP中的字符串仍然只是二进制,这意味着,你可以在最后删除它。mb_strlen
不适合收集二进制索引位置strlen
:
$name = "''foo''";
$name[0] = '';
$name[1] = '';
$len = strlen($name); # binary safe string length
$name[$len-1] = '';
$name[$len-2] = '';
echo $name; # foo
mb_strlen
与strlen
$utf8 = 'ä';
mb_strlen($utf8, 'UTF-8'); # 1
strlen($utf8); # 2
$utf8[1] != 'ä';
答案 1 :(得分:0)
您可以使用修剪功能:
$name = trim($name, "'");
echo $name; // Prints: blablabla