所以,我製作了這個簡單的註冊檢查頁面,用戶可以輸入一個ID,並從CSV文件中獲得與該ID匹配的結果。PHP - 來自csv的字符串報告更多字符
問題我有,是由於某種原因,我不能得到一個好匹配。或者,它匹配每一行。在兩個比較字符串
的var_dump給了我這樣的:
string(7) "AKM" string(3) "AKM"
AKM在這個例子中,用戶ID。我試過utf8編碼,並嘗試搜索eeverywhere。只是不知道爲什麼我沒有得到一個匹配,以及爲什麼var_dump報告AKM爲7個字符。
有什麼想法?下面
代碼:
$file = 'report/report.csv';
$startRow = 6;
$hms = $_GET["hms"];
$csv = array_map(function($v){return str_getcsv($v, "\t");}, file($file));
$csv = array_slice($csv, 6);
foreach($csv as $row){
if (strpos($row,$hms) !== false) {
$start = strpos($row[1], '(') - 2;
$end = strlen($row[1]) - strpos($row[1], ')');
$userID = substr($row[1],0,$start);
$userName = substr($row[1],$start+3,-2);
if($row[3] == "true"){
$passed = "Bestått (".$row[4].")";
}else{
$passed = "Ikke bestått";
}
$result = [
"id" => $userID,
"name" => $userName,
"passed" => $passed,
"datePassed" => $row[7],
"timeSpent" => $row[6],
];
var_dump($result);
}
}
這是CSV的樣子:
響應
數據
identity_uid identity_caption完成經過結果試圖時間last_access U_5A69E39671310F44A2333C9206DAD20C XXX(名稱)100.0 true 82.6 3 00: 57:09 2016年1月4日10點28分54秒 U_DF5A47B8E1A6E247AA338F571A8F63B1 YYY(名稱)5.0假0.0 3○時04分48秒2016年1月15日7時26分05秒
編輯:這是隱藏字符我現在發現:
'' . "\0" . 'A' . "\0" . 'K' . "\0" . 'M' . "\0" . ''
我的解決方案是這樣的:[鏈接](http://stackoverflow.com/a/31210732) – user2113177