CSV 中的字符串添加隐藏字符,因此在比较时,结果始终为 false
Strings from CSV adding hidden characters, so when comparing, result is always false
我正在从 CSV 文件中提取数据并与之进行比较
private function isCsvValid($fileLocation){
$file = fopen($fileLocation, 'r');
$line1 = fgetcsv($file);
$isValid = $this->checkCorrectColumns($line1);
}
private function checkCorrectColumns($line){
$columnsFound = array();
foreach ($line as $value) {
//comparisons here
if($value == "GBPAUD"){
}
}
}
但是 CSV 字符串在
中有隐藏字符
array(6) {
[0]=> string(19) "363533840"
[1]=> string(15) "GBPAUD"
[2]=> string(47) "2007-12-02 17:00:33.000"
[3]=> string(17) "2.326500"
[4]=> string(17) "2.327400"
[5]=> " string(5) "D
}
我的字符串必须正确的字符数。
string(6) "GBPAUD"
我可以通过删除字母和数字以外的所有内容的正则表达式与 return 进行比较,这很棒。
/[^A-Za-z0-9]/
但这会删除浮点数中的 . 和日期等中的 -
每一位数据都有额外的字符。我宁愿不必为每个字符串都有一个片段尾部正则表达式。
谁能告诉我如何让字符串成为正确的位数?我在互联网上搜索,但 none 的建议有效(例如二进制安全比较,剥离 html 实体等...)
我是否可以删除所有字符串中的所有隐藏字符?
我找到了解决方案,使用这个正则表达式
$string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $value);
我正在从 CSV 文件中提取数据并与之进行比较
private function isCsvValid($fileLocation){
$file = fopen($fileLocation, 'r');
$line1 = fgetcsv($file);
$isValid = $this->checkCorrectColumns($line1);
}
private function checkCorrectColumns($line){
$columnsFound = array();
foreach ($line as $value) {
//comparisons here
if($value == "GBPAUD"){
}
}
}
但是 CSV 字符串在
中有隐藏字符 array(6) {
[0]=> string(19) "363533840"
[1]=> string(15) "GBPAUD"
[2]=> string(47) "2007-12-02 17:00:33.000"
[3]=> string(17) "2.326500"
[4]=> string(17) "2.327400"
[5]=> " string(5) "D
}
我的字符串必须正确的字符数。
string(6) "GBPAUD"
我可以通过删除字母和数字以外的所有内容的正则表达式与 return 进行比较,这很棒。
/[^A-Za-z0-9]/
但这会删除浮点数中的 . 和日期等中的 -
每一位数据都有额外的字符。我宁愿不必为每个字符串都有一个片段尾部正则表达式。
谁能告诉我如何让字符串成为正确的位数?我在互联网上搜索,但 none 的建议有效(例如二进制安全比较,剥离 html 实体等...)
我是否可以删除所有字符串中的所有隐藏字符?
我找到了解决方案,使用这个正则表达式
$string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $value);