问题描述
我的HTML复选框表单字段的名称是这样的:
name =Some File name.pdf
PHP POST数组看起来像这样(一些字符被下划线替换):
数组(
/ pre>
Some_File_name_pdf=&on
)
有没有PHP函数可以用来完全按照POST数组中显示的文件名字符串进行转换?我对str_replace不感兴趣
我想要这样做:$ myfilename = $ obj-> getFileName(); //返回Some File name.pdf
$ result = isset($ _ POST [some_encoding_function($ myfilename)]);
some_encoding_function应该使用一些字符串,如Some File name.pdf,并返回Some_File_name_pdf ;
解决方案根据:
这将只需要一个简单的字符串替换。
但是,根据:如果该评论是正确的,那么你应该很好,像
函数underscorify($ s)
{
return preg_replace('/ [\.\ [\x80-\x9F] /','_',$ s);
}
请注意,
chr(128) - chr (159)
是不明确的,因为没有提到这是否符合字符编码。
它可以引用中的所有ASCII字符€
Ÿ,可以参考来自\\\
-\\\
,或者可以简单地硬编码来检查b> = 128&&& b 。
The name of my HTML checkbox form field is something like this:
name = "Some File name.pdf"
The PHP POST array looks something like this (some characters replaced by underscore):
array( "Some_File_name_pdf" => "on" )
Is there a PHP function I can use to convert a filename string exactly as it appears in the POST array? I am not interested in str_replace.I want to be able to do this:
$myfilename = $obj->getFileName(); // returns "Some File name.pdf" $result = isset($_POST[some_encoding_function($myfilename)]);
The some_encoding_function should take a string like "Some File name.pdf" and return something like "Some_File_name_pdf";
解决方案According to the PHP documentation:
This would require only a trivial string substitution.
However, according to a comment on that page:If that comment is correct, then you should be good to go with a function like
function underscorify($s) { return preg_replace('/[ \.\[\x80-\x9F]/', '_', $s); }
Note however, that
chr(128) - chr(159)
is ambiguous, as it is not mentioned whether this is character-encoding-dependent or not.
It may refer to all ASCII characters from€
toŸ
, it may refer to all UTF-8 control characters from\u0080
-\u009F
, or it may simply be hardcoded to check the byte value forb >= 128 && b <= 159
.这篇关于编码字符串以匹配PHP POST数组中的编码表单字段名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!