1

我想对文本进行子字符串化,例如。“你好吗?” 通过使用此代码

$text= "Hello - How are you?";
$strings = explode(' - ',$text);
echo $strings[0]; // Hello
echo $strings[1]; // How are you

它不起作用,因为' - '。

如果我更改为:

$text= "Hello-How are you?";
$strings = explode('-',$text);
echo $strings[0]; // Hello
echo $strings[1]; // How are you

没关系。

有人能帮我吗?谢谢你。

4

3 回答 3

6

我遇到了同样的问题,经过一个小时的调查,原来从Microsoft Word复制的文本有这样的问题,word选择将减号( - )转换为破折号( - )在这里你可以看到它们并排看看区别:--</p>

我不知道为什么 word 会那样做,但我们习惯于看到这样令人讨厌的事情是由 word 完成的,你不应该让任何人从 word 复制文本到你的应用程序!

要使您的代码在这些条件下工作,您必须首先替换这些奇怪的字符:

$text= "Hello-How are you?";
$strings = str_replace('–', '-', $text);
$strings = explode('-',$text);
echo $strings[0]; // Hello
echo $strings[1]; // How are you
于 2015-05-20T13:44:55.603 回答
6

我发现了另一种方法:

$title= filter_var($title, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$title= str_replace('&#8211;', '-', $title);
$size = explode('-', $title);

其他任何东西都对我有用

于 2018-02-23T21:11:50.663 回答
1
于 2013-09-08T20:32:08.703 回答