2011-01-21 1 views
0

J'ai un code php qui va lire et analyser les fichiers CSV dans un tableau multiligne, ce que je dois faire ensuite est de prendre ce tableau et laisser feu simplehtmldom un robot pour retourner des informations sur les stocks de l'entreprise.Parse CSV fichier de liens à php array, alimentez ces liens à simplehtmldom

Le code php pour l'analyseur CSV est

$arrCSV = array(); 
// Opening up the CSV file 
if (($handle = fopen("NASDAQ.csv", "r")) !==FALSE) { 
// Set the parent array key to 0 
$key = 0; 
// While there is data available loop through unlimited times (0) using separator (,) 
while (($data = fgetcsv($handle, 0, ",")) !==FALSE) { 
    // Count the total keys in each row $data is the variable for each line of the array 
$c = count($data); 
    //Populate the array 
    for ($x=0;$x<$c;$x++) { 
    $arrCSV[$key][$x] = $data[$x]; 
    } 
    $key++; 
} // end while 
// Close the CSV file 
fclose($handle); 
} // end if 
echo "<pre>"; 
echo print_r($arrCSV); 
echo "</pre>"; 

Cela fonctionne très bien et parse la ligne de tableau en ligne, les données étant la variable $ pour chaque ligne. Ce que je dois faire maintenant est de le faire lire via simplehtmldom, qui est là où il se décompose, je cherche à utiliser ce code ou quelque chose de très similaire, je suis assez inexpérimenté à ce sujet mais je devrais avoir besoin d'une la ligne.

C'est le code simplehtmldom

$html = file_get_html($data); 
$html->find('div[class="detailsDataContainerLt"]'); 
$tickerdetails = ("$es[0]"); 
$FileHandle2 = fopen($data, 'w') or die("can't open file"); 
fwrite($FileHandle2, $tickerdetails); 
fclose($FileHandle2); 
fclose($handle); 

Donc, mon qyestion est comment puis-je les obtenir à la fois travailler ensemble, je Javé vérifié simplehtmldom page de manuel plusieurs fois et trouve un littlebit vague dans ce domaine, le simplehtmldom code ci-dessus est ce que j'utilise dans une autre fonction, mais par lien direclty donc je sais que cela fonctionne.

ce qui a trait Martin

Répondre

0

Votre boucle pourrait être réduite à (oui, c'est la même):

while ($data = fgetcsv($handle, 0, ',')) { 
    $arrCSV[] = $data; 
} 

En utilisant SimpleXML au lieu de SimpleDom (Comme il est PHP standard):

foreach ($arrCSV as $row) { 
    $xml = simplexml_load_file($row[0]); // Change 0 to the index of the url 
    $result = $xml->xpath('//div[contains(concat(" ", @class, " "), " detailsDataContainerLt")]'); 
    if ($result->length > 0) { 
     $file = fopen($row[1], '2'); // Change 1 to the filename you want to write to 
     if ($file) { 
      fwrite($file, (string) $result->item(0)); 
      fclose($file); 
     } 
    } 
} 

qui devrait le faire si j'ai bien compris ...