0

我试图捕捉文本字段中给出的项目符号并尝试用其他内容替换它,因为?在将给定文本呈现给用户之后,它被显示为而不是 •。我是这样测试的:我在word中写了带有项目符号的文本并复制粘贴到文本字段中。

我的愿景是这样的:

$test = strstr($input,'•');
if($test){ echo "bullet point found!";
}

但它不起作用或没有捕捉到,或者•是错误的正则表达式来捕捉要点。

4

3 回答 3

1
于 2013-02-13T13:48:53.103 回答
0

尝试•代替•.

请参阅HTML 中的特殊字符。

HTML 很可能没有通过 &bull,而是 HTML equivilent。

如果找不到它,请查看HTMLEntities(),这实际上可能是更好的方法(除非您可能只是想处理子弹)。

编辑:用 html_entity_decode() 解码 HTML,用 HTMLEntities( )重新编码给用户。

于 2013-02-13T13:40:23.007 回答
0

First, before checking the input make sure to encode all characters into its HTML equivalents (which • is). So like this:

$test = strstr(htmlentities($input), '•');

if($test) {
  echo "bullet point found!";
}

However, if you encode your input using htmlentities, all UTF-8 characters should be rendered fine to the user afterwards, as the storage won't need to deal with UTF-8 anymore, thus eliminating artifacts.

Also: Please make sure you are escaping user input when saving it into the database, preferably using equivalents of bound parameters as seen in PDO.

于 2013-02-13T13:54:47.220 回答