2017-03-06 4 views
0

Ich möchte ein Formularfeld mit bestimmten Daten in der Liste, zum Beispiel 15 Ziffern validieren. Im folgenden Codebeispiel benötige ich Hilfe mit dem Code, um die Liste nach der Nummer zu durchsuchen. 2 Einträge unten sind das Beispiel, aber die echte Liste wird Hunderte von Zeilen sein.Form Feld Validierung gegen Liste

public function validate($value) 
{ 
    $file_location = '/path/to/file/a1.txt'; 

    // Mage::log($file_location, null , 'aa.log', 1); 

    $allowed_values = explode("\n",trim(file_get_contents($file_location))); 
    array_walk($allowed_values, 'trim'); 
    // $allowed_values = array(''); 

    return in_array($value, $allowed_values); 
} 

Liste Beispiel

C810,34402,BB-H500,356523076903149,TESTE 
C810,34402,BB-H500,356523076452163,TESTE 

Danke

+0

Also ... dieser Code ist oder funktioniert nicht? Es könnte auch sinnvoll sein, '" \ n "' in 'PHP_EOL' zu ändern. – Xorifelse

Antwort

0

Ist das ein csv? Dann versuchen

public function validate($value) 
{ 
    $file_location = '/path/to/file/a1.txt'; 

    $csv = array_map('str_getcsv', file($file_location)); //Get all values from the file 
    $allowed_values = array_column(3); // Replace 3 by the index of the field 
    return in_array($value, $allowed_values); 
} 
+0

Vielen Dank @Exalyon Die Datei ist eine TXT-Datei, keine CSV-Datei. – Elvis