我想要对文本进行子串,例如."你好,你好吗?" 通过使用此代码
$text= "Hello - How are you?";
$strings = explode(' - ',$text);
echo $strings[0]; // Hello
echo $strings[1]; // How are you
Run Code Online (Sandbox Code Playgroud)
它不会起作用,因为' - '.
如果我改为:
$text= "Hello-How are you?";
$strings = explode('-',$text);
echo $strings[0]; // Hello
echo $strings[1]; // How are you
Run Code Online (Sandbox Code Playgroud)
没关系.
有人能帮我吗?谢谢.
小智 6
我找到了另一种方法:
$title= filter_var($title, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$title= str_replace('–', '-', $title);
$size = explode('-', $title);
Run Code Online (Sandbox Code Playgroud)
其他任何对我有用
小智 5
我有同样的问题,经过一个小时的调查,结果发现从Microsoft Word复制的文本有这样的问题,单词选择将减号( - )转换为短划线( - ),你可以在这里看到它们并排看到不同: -
我不知道为什么单词会这样做,但是我们习惯于通过单词看到这样烦人的事情,你永远不应该让任何人将文字从单词复制到你的应用程序!
要使代码在这些条件下工作,必须先替换这些奇怪的字符:
$text= "Hello-How are you?";
$strings = str_replace('–', '-', $text);
$strings = explode('-',$text);
echo $strings[0]; // Hello
echo $strings[1]; // How are you
Run Code Online (Sandbox Code Playgroud)