Php 转换特殊字符,如'\t';至\";(真正的账单)
我想在我的网站上创建一个CSV文件导入器。我希望用户选择分隔符 问题是,当表单提交时,分隔符字段存储为'\t',例如,因此在分析文件时,我搜索字符串'\t',而不是实际的制表符。它对每个特殊字符都执行相同的操作,如\r\n等 我想知道在不使用以下数组的情况下,将这些字符转换为其真实表示形式的方法或函数:Php 转换特殊字符,如'\t';至\";(真正的账单),php,csv,special-characters,Php,Csv,Special Characters,我想在我的网站上创建一个CSV文件导入器。我希望用户选择分隔符 问题是,当表单提交时,分隔符字段存储为'\t',例如,因此在分析文件时,我搜索字符串'\t',而不是实际的制表符。它对每个特殊字符都执行相同的操作,如\r\n等 我想知道在不使用以下数组的情况下,将这些字符转换为其真实表示形式的方法或函数: 't'=>“\t” 'r'=>“\r” 将标签保留在引号中看起来不像是这样,但是在任何一个键盘中进行一次标签切换,然后复制到引号中应该可以 $data = str_replace("\t",
- 't'=>“\t”
- 'r'=>“\r”
$data = str_replace("\t", " ", $data);
在这里查看一个示例:您可能应该决定允许哪些特殊字符,并创建一个类似以下的函数:
function translate_quoted($string) {
$search = array("\\t", "\\n", "\\r");
$replace = array( "\t", "\n", "\r");
return str_replace($search, $replace, $string);
}
PHP解释器自动转义PHP源文件中的双引号字符串,因此
echo“\t”
实际上表示制表符
相反,当您从任何外部源读取字符串时,反斜杠采用其文字值:反斜杠和“t”。您可以在PHP源代码中将其表示为“\\t”
(双引号)或“\t”
(单引号),这不是您想要的
这是可行的,但PHP为此提供了一个本机函数
识别类C序列(\a、\b、\f、\n、\r、\t和\v)以及八进制和十六进制表示,并将其转换为实际含义
// C-like escape sequence
stripcslashes('\t') === "\t"; // true;
// Hexadecimal escape sequence
stripcslashes('\x09') === "\t"; // true;
// Octal escape sequence
stripcslashes('\011') === "\t"; // true;
HTML实体对于HTML很好,但如果将粘贴复制到纯文本文件中,这不会导致问题吗?
// C-like escape sequence
stripcslashes('\t') === "\t"; // true;
// Hexadecimal escape sequence
stripcslashes('\x09') === "\t"; // true;
// Octal escape sequence
stripcslashes('\011') === "\t"; // true;