在 php 中从字符串中删除单引号

php
2022-08-30 15:28:50

我有一个HTML表单,用户可以将文本输入到字段中,然后我让php创建一个名为titletitle.html

我的问题是,用户可以在标题字段中输入空格和撇号,而这些空格和撇号不能在html文件名中使用。我通过使用下划线替换了空格:

$FileName = str_replace(" ", "_", $UserInput);

但是,我似乎无法删除单引号?我尝试过使用:

$FileName = preg_replace("/'/", '', $UserInput); 

但这需要并把它变成.test'stest\s.html


答案 1

使用您当前的str_replace方法:

$FileName = str_replace("'", "", $UserInput);

虽然很难看出,但第一个参数是双引号,后跟单引号,后跟双引号。第二个参数是两个双引号,中间没有任何内容。

使用str_replace,您甚至可以拥有一个要完全删除的字符串数组:

$remove[] = "'";
$remove[] = '"';
$remove[] = "-"; // just as another example

$FileName = str_replace( $remove, "", $UserInput );

答案 2

您可以在 HTML 实体中替换:

$FileName = preg_replace("/'/", "\'", $UserInput);

推荐