Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> tekst nie jest losowy :\
D3vilroot
post 27.10.2006, 13:36:02
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 5.08.2006

Ostrzeżenie: (0%)
-----


W tym programie chodzi o to żeby pobieral on losowe linie z pliku tekstowego i zapisywal je do innego ,ktorego nazwa jest pobierana z jeszcze innego pliku .txt
Moze wydawać się zagmatwane ale spojrzcie na kod
  1. <?
  2. $nazwa = $_POST['nazwa'];
  3.  
  4.  
  5. $temat1 = $nazwa;
  6. $wersja1 = "slowa/$temat1.txt";
  7. $arrFile1 = file( "$wersja1" ); // wczytujesz wszystko do tablicy
  8.  
  9. //shuffle( $arrFile ); // tasujesz/mieszasz tablicę
  10.  
  11. $intLinesCount1 = count( $arrFile1 ); // liczysz ilosc linii
  12. for($i1=; $i1 < $intLinesCount1; $i1++ ) //tablica jest indeksowana od zera
  13. {
  14. //zamienia biale znaki na podkreslenia
  15. $klucz = $arrFile1;
  16. $arrFile1[$i1] = eregi_replace(" ", "_", $arrFile1[$i1]);
  17. //zamienia kropki na myslniki
  18. $arrFile1[$i1] = eregi_replace(".", "-", $arrFile1[$i1]);
  19.  
  20. $arrFile1[$i1] = eregi_replace("n", "", $arrFile1[$i1]);
  21.  
  22. //echo  "$arrFile1[$i1].txt<br />n";
  23. }
  24. ?>
  25.  
  26. <?php
  27. $zlicz = $intLinesCount1 ;
  28. mkdir("pliki/$nazwa");
  29.  
  30. $slowo = $temat1;
  31. //config
  32. $dbname = "slowka";
  33. $username = "root"; 
  34. $password = "krasnal";
  35.  
  36. //laczy do bazy
  37. $dbh = mysql_connect ("localhost", "$username", "$password") or die ('Brak polaczenia z baza danych: ' . mysql_error());
  38. mysql_select_db ("$dbname");
  39.  
  40. for ($a=; $a <13; $a++){
  41. $wykonaj = mysql_query("SELECT * FROM klucze_poczatek WHERE id=$a");
  42. while ($row = mysql_fetch_array($wykonaj)) {
  43. //echo $row[1];
  44. $row[1] = eregi_replace("rn", "", $row[1]);
  45. $row[1] = eregi_replace("nr", "", $row[1]);
  46. $nr[$a] = $row[1];
  47. //echo "<br>$nr[$a]";
  48.  }
  49. }
  50.  
  51. $arrFile[1] = file( "artykuly/jakis_tekst_1.txt" ); // wczytujesz wszystko do tablicy
  52. $arrFile[2] = file( "artykuly/jakis_tekst_2.txt" ); // wczytujesz wszystko do tablicy
  53. $arrFile[3] = file( "artykuly/jakis_tekst_3.txt" ); // wczytujesz wszystko do tablicy
  54. $arrFile[4] = file( "artykuly/jakis_tekst_4.txt" ); // wczytujesz wszystko do tablicy
  55. $arrFile[5] = file( "artykuly/jakis_tekst_5.txt" ); // wczytujesz wszystko do tablicy
  56.  
  57.  
  58. //petla tworzaca pliki
  59. for ($ileS = 0; $ileS < $intLinesCount1; $ileS++){
  60.  
  61. $plik = rand( 1, 5);
  62. shuffle( $arrFile[$plik] ); // tasujesz/mieszasz tablicę
  63.  
  64. for($i=,$a=0; $i < 25; $i++ ) //tablica jest indeksowana od zera
  65. {
  66. $arrFile[$plik][$i] = eregi_replace("nr", "", $arrFile[$plik][$i]);
  67. $arrFile[$plik][$i] = eregi_replace("rn", "", $arrFile[$plik][$i]);
  68. $a++;
  69. $ble[$intLinesCount1] = "$nr[$a] $slowo ".$arrFile[$plik][$i]." $nr[$a] $slowo " .$i++. " Jakis napis".$arrFile[$plik][$i]." $nr[$a] $slowo";
  70. $blee .= $ble[$intLinesCount1];
  71. }
  72.  
  73.  
  74.  
  75. $filename = "pliki/$nazwa/$arrFile1[$ileS].txt"; 
  76. if (!file_exists($filename)) { 
  77. touch($filename);
  78.  chmod($filename,0666); 
  79. }
  80.  
  81. //echo $stron . "<br>";
  82. $losowa = rand(, 50);
  83. $string = "$klucz[$losowa]$blee"; 
  84.  
  85. $file = fopen("$filename", w); 
  86. $zapisz = fwrite($file, $string, '7168'); 
  87. fclose($file); 
  88. }
  89.  
  90. if($zapisz){
  91. echo "Zapisano pliki na haslo $nazwa<br><br>";
  92. }
  93.  
  94.  
  95. ?>

pod zmienną $nazwa kryje się napis np. komputer
Wiec w pliku komputer.txt zapisane sa przyszle nazwy plikow
Kod
strona1
inny napis
jeszcze inny....napis

Zaleznie od tego ile jest linii w tym pliku tyle powstanie nowych

Dlaczego taki kod tworzy mi pliki prawidłowo nazwane (te pobrane z komputer.txt) ale zapisane w nich dane sa identyczne, przeciez mieszam tablice za kazdym okrazeniu petli blink.gif
co wiecej to za kazdym razem wybieram inny losowy plik blink.gif Czemu wiec wszystkie sa identyczne?

Dodalem tez ograniczenie zeby nowo tworzony plik mial 7 KB bo wczesniejsze mialy nawet po 3 MB i po 16 tys. linii worriedsmiley.gif

Potrafi mi ktos pomoc?

Ten post edytował D3vilroot 26.10.2006, 15:48:08
Go to the top of the page
+Quote Post
php programmer
post 27.10.2006, 14:20:58
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

Ostrzeżenie: (0%)
-----


ogólnie twój kod jest strasznie zagmatwany,
trudno wyczytać z niego o co dokładnie robi,
ale proponuje zrobić tak.

Napisać od nowa i po każdym dodanym duperelu
sprawdzać czy dzieje się to co zamierzasz.

Podziel sobie zadanie
Cytat
chodzi o to żeby pobieral on losowe linie z pliku tekstowego i zapisywal je do innego ,ktorego nazwa jest pobierana z jeszcze innego pliku .txt

na dwie części najpierw zrób
Cytat
chodzi o to żeby pobieral on losowe linie z pliku tekstowego i zapisywal je do innego

i jak już będzie to działało to dopiero zrób kolejną część
Cytat
ktorego nazwa jest pobierana z jeszcze innego pliku .txt

a na samym końcu dopiero eregi_replace

Ten post edytował php programmer 27.10.2006, 14:26:51
Go to the top of the page
+Quote Post
D3vilroot
post 28.10.2006, 15:48:31
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 5.08.2006

Ostrzeżenie: (0%)
-----


Poszedlem z Twoją radą i poskutkowalo. I udalo mi się znaleźć błąd.
Wystarczyło po zrobieniu okrążenia pętli "uwolnić" zmienną, która zawiarała tekst zapisywany do pliku.
A tak za każdym razem tworzył sie plik z takimi samymi danymi.

Wielkie dzięki za dobrą rade...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 06:32