Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odczyt/zapis pliku
Forum PHP.pl > Forum > Przedszkole
Gość_pepsi
witam,
mam plik, który zawiera dane w oddzilnych wierszach, chcę by skrypt w php pobierał mi każdy wiersz z osobna, haszował to funkcją md5 i zapisywał w oddzielnym pliku.
Próbowałem już to paroma kodami, lecz nie osiągnąłem rezultatu, poniewż skrypt nie chciał szyfrować każdego wiersza z osobna tylko szyfrował jakby wszystko naraz.

Tutaj mam wersję, która nie tworzy nowego pliku, ale wyświetla zawartość w przeglądarce:
  1. <?
  2. $in = file("in.txt");
  3. #$out = fopen("out.txt", "w");
  4. if (!$in) {
  5. echo "Brak pliku z haslami";
  6. }
  7. foreach ($in as $line_num => $line) {
  8. echo $line ." md5: ".md5($line)."<br />\n";
  9. }
  10.  
  11. ?>


tutaj, kolejna nieudana próba:
  1. <?
  2. $in = fopen("in.txt", "r");
  3. $out = fopen("out.txt", "a+");
  4. if (!$in) {
  5. echo "Brak pliku z haslami";
  6. }
  7.  
  8. while (!feof($in)) {
  9. $hash = fgets ($in, 10);
  10. $see = $hash.":".md5($hash);
  11. fwrite($out, $see);
  12. //echo $see;
  13. }
  14.  
  15. fclose($in);
  16. ?>


proszę o rady, jak to poprawnie zapisać, pozdrawiam
Balon
a nie lepiej otworzyc ten plik potraktowac go explodem gdzie separatorem bedzie \n a potem wiersz po wierszy zapisac w osobnym pliku ;]

explode - www.php.net.pl/explode
dr_bonzo
  1. <?php
  2. $inFile = 'data.in';
  3. $outFile = 'data.out';
  4.  
  5. function processLine( $line )
  6. {
  7. return md5( rtrim( $line, "\r\n" ) ); // znaki konca wiersza musza byc usuniedte przed hashowaniem
  8. }
  9.  
  10. file_put_contents( $outFile, implode( "\n", array_map( 'processLine', file( $inFile ) ) ) );
  11.  
  12. ?>

Prawie jedna linijka smile.gif
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-2025 Invision Power Services, Inc.