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

mic*_*lls 20 php

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

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

$FileName = str_replace(" ", "_", $UserInput);
Run Code Online (Sandbox Code Playgroud)

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

$FileName = preg_replace("/'/", '', $UserInput); 
Run Code Online (Sandbox Code Playgroud)

但这又把test's它变成了test\s.html.

hoo*_*ter 55

使用您当前的str_replace方法:

$FileName = str_replace("'", "", $UserInput);
Run Code Online (Sandbox Code Playgroud)

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

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

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

$FileName = str_replace( $remove, "", $UserInput );
Run Code Online (Sandbox Code Playgroud)


Gil*_*not 11

您可以在HTML权利中替换:

$FileName = preg_replace("/'/", "\'", $UserInput);
Run Code Online (Sandbox Code Playgroud)