Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obróbka csv
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Fo
witam,

to temat z gatunku tych "ktokolwiek widział, ktokolwiek wie".

Poszukuję skryptu, który jest w stanie przetworzyć dane z pliku csv tudzież txt. Dane zawsze składowane są w postaci:
dana1|dana2|dana3|ewentualna dana4

Mam parę milionów linijek do poprzerabiania z takiego właśnie formatu na następujący:

  1. <a href="[dana1]" target="blank"><img src="[dana2]" alt="[dana3]"></a>


czyli taki skrypt, powinien dawać możliwość określenia, która z dostępnych w pliku kolumn, jest linkiem, która obrazkiem a która alt textem obrazka. Dodatkowo, w kroku drugim, trzeba posklejać takich powyższych linijek 5 w jednym wierszu a w następnym wierszu następne pięć takich linijek i następne i następne i następne, czyli w outpucie było by:

  1. <a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a>
  2. <a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a>
  3. <a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a>
  4. <a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a><a href="..." target="blank"><img src="..." alt="..."></a>


coś mniej więcej na taki kształt. Fajnie by było gdyby to był taki skrypcik który można gdzieś uploadnać na serwer, otwieram klikam załaduj plik i dostaję output. Widział ktoś gdzieś coś takiego ? bo ja raczej jako takowy noob phpowy sobie tego sam nie napiszę, no chyba, że ktoś by mi podał jakieś informacje którymi mam się zainteresować to mogę podzióbać i popróbować.

dzięki za jakiekolwiek informacje.



ok, sam już sobie to sklepałem za pomocą manuala tyle tylko że mam mały problem co do wyświetlania danych:

mam formularz:
  1. <br />Note that column numbers start from 0<br /><form name="form" method="post" action="maker.php">
  2. Link column number:<input type="text" name="link"><br />
  3. Image column number:<input type="text" name="image"><br />
  4. Alt text column number:<input type="text" name="alt"><br />
  5. File to upload: <input type="file" name="file"><br />
  6. <input type="submit" value="show result">
  7. </form>


który dane przesyła mi do pliku przerabiającego je "maker.php"
  1. <?
  2. header('Content-Type: text/plain'); 
  3. $row = 1;
  4. $fp = fopen ("$_POST[file]","r");
  5. while ($data = fgetcsv ($fp, 10000000, "|")) {
  6. $num = count ($data);
  7. $row++;
  8. for ($c=0; $c < $num; $c++) {
  9.  
  10. print "<a href=\"".$data[$_POST['link']]."\" target=\"blank\"><img src=\"".$data[$_POST['image']]."\" alt=\"".$data[$_POST['alt']]."\"></a>";
  11.  
  12. }
  13.  
  14. }
  15. fclose ($fp);
  16. ?>


I teraz są dwa problemy:
1. jak zrobić żeby można było przesłać plik który ma być sparsowany przez makera bo ten $_POST[file] nie za bardzo działa.
2. jak wyświetlić na górze ten formularz a na dole wynik jego działania ?

pomocy exclamation.gif! smile.gif
dr_bonzo
1. rozdzial manuala o Uploadzie ($_FILES itd)
2. normalnie, w maker.php wyswietl najpierw formularz a potem wynik skryptu, hmm, tyle ze dajesz header text/plain, co nijak ma sie do html'a, wiec formularz + wynik skryptu tak ladnie sie nie polacza, ew. w ramke to wrzuc
Fo
ok, gotowe, troche to jeszcze przerobilem i z pomoca dr_bonzo dziala jak ta lala.

bonzo jestes bogiem smile.gif

a oto kod:

  1. Note that column numbers start from 0<br />
  2. <form enctype="multipart/form-data" name="form" method="post">
  3. Link column number:<input type="text" name="link" value="<? echo $_POST['link']; ?>"><br />
  4. Image column number:<input type="text" name="image" value="<? echo $_POST['image']; ?>"><br />
  5. Alt text column number:<input type="text" name="alt" value="<? echo $_POST['alt']; ?>"><br />
  6. File to upload: <input type="file" name="file"><br />
  7. Delimeter: <input type="text" name="delim" value="<? echo $_POST['delim']; ?>"><br />
  8. Thumb URL: <input type="text" name="thumb" value="<? echo $_POST['thumb']; ?>"><br />
  9. Affiliate Code: <input type="text" name="aff" value="<? echo $_POST['aff']; ?>"><br />
  10. <input type="submit" value="show result">
  11. </form>
  12.  
  13. <textarea rows="20" cols="100">
  14. <?php
  15. $row = 0;
  16. $filename = $_FILES['file']['tmp_name'];
  17.  
  18. $handle = fopen( $filename, 'r' );
  19. while ($data = fgetcsv ($handle, 10000000, "$_POST[delim]"))
  20. {
  21. $num = count ($data);
  22. $row++;
  23.  if ($row % 12 == 1)
  24. {
  25. print "$_POST[thumb]|$_POST[aff]|";
  26. }
  27.  
  28. print "<a href=\"".$data[$_POST['link']]."\" target=\"blank\"><img src=\"".$data[$_POST['image']]."\" alt=\"".$data[$_POST['alt']]."\"></a>";
  29.  
  30.  if ( $row % 12 == 0 )
  31. {
  32. print "\n";
  33.  
  34. }
  35. }
  36. ?>
  37. </textarea>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.