Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]dane z pliku txt na stronie www za pomocą php
amatorph
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.11.2014

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


Witam,
Mam takie pytanie: w zaki sposób można umieścić dane na stronie www z pliku txt. Chodzi mi o meta tagi, title i jakieś drobne informacje.
kod strony to:
  1. <?php
  2. // zmienna potrzebna do prawidlowego wczytania includowanych plikow
  3. $add_site = true;
  4. ?>
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  6. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  7. <meta http-equiv="Reply-to" content="kess@snug.pl" />
  8. <meta name="Author" content="Krzysztof Szypulski" />
  9. <title>Szablon strony WWW z wykorzystaniem PHP</title>
  10.  
  11.  
  12. </head>
  13.  
  14. </body>
  15. </html>


Jesto szablon pobrany ze strony http://www.kess.snug.pl/?pid=23&sid=10

i teraz chciałbym aby metatagi były wczytywane z pliku meta.txt:
  1. id|description|keywords|title|tekst1|tekst2|tekst3
  2. 1|description1|keywords1|title1|1tekst1|1tekst2|1tekst3
  3. 2|description2|keywords2|title2|2tekst1|2tekst2|2tekst3

Jak narazie utknąłem na tym że trzeba taki plik otworzyć w następujący sposób
  1. <?php
  2. $fp = fopen("meta.txt", "r");
  3. ?>

i siedzę nad tym już 2 dni.
Proszę o pomoc i z góry dziękuję

Ten post edytował amatorph 29.11.2014, 17:36:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
amatorph
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.11.2014

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


Dzięki za pomoc. skrypt działa poprawnie. Napisałem też do mojej stronki małego CMSa.
Mam z nim jeden problem. Do każdej komórki bazy danych dodaje spację przy edycji. Jaka jest przyczyna?
index.php
  1. <?php
  2. // zmienna potrzebna do prawidlowego wczytania includowanych plikow
  3. $add_site = true;
  4. ?>
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  6. <html>
  7. <?php
  8. $go = $_GET['go'];
  9. $fp = fopen('meta.csv', 'r'); // otwarcie pliku tylko do odczytu ("r")
  10. flock($fp, 1); // blokowanie pliku do odczytu
  11. $i = 0;
  12. while(!feof($fp) && $i < $go) { // do póki nie ma końca pliku lub nie ma linii
  13. $linia = fgets($fp, 25000); // pobranie jednej linii do zmiennej $linia
  14. $i++; // podwyższenie zmiennej $i o jeden
  15. }
  16. flock($fp, 3); // odblokowanie pliku
  17. fclose($fp); // zamknięcie pliku
  18. $conf=explode ('|', $linia);
  19.  
  20. echo "<form action='edit.php' method='POST'>
  21. CZĘŚĆ NIEWIDOCZNA - SEKCJA HEAD<br>
  22. <table>
  23. <tr>
  24. <td>id<br><textarea name='id' cols='25' rows='7'>$conf[0] </textarea></td>
  25. <td>description<br><textarea name='description' cols='40' rows='7'>$conf[1] </textarea></td>
  26. <td>keywords<br><textarea name='keywords' cols='40' rows='7'>$conf[2] </textarea></td>
  27. <td>title<br><textarea name='title' cols='40' rows='7'>$conf[3] </textarea><td></tr></table>
  28. CZĘŚĆ WIDOCZNA<br><br>
  29. Tytuł lewego dolnego tekstu - lewydolnytyt<br><textarea name='lewydolnytyt' cols='50' rows='1'>$conf[4] </textarea><br><br>
  30. Lewy dolny tekst - lewydolnytxt<br><textarea name='lewydolnytxt' cols='150' rows='7'>$conf[5] </textarea><br><br>
  31. <input type='submit' name='submit' value='zapisz' />"
  32. ?>


i plik edit.php
  1. <?
  2. $new=
  3. $_POST['id']. '|' .
  4. $_POST['description']. '|' .
  5. $_POST['keywords']. '|' .
  6. $_POST['title']. '|' .
  7. $_POST['lewydolnytyt']. '|' .
  8. $_POST['lewydolnytxt']. '|' .
  9.  
  10.  
  11. $new=stripslashes($new);
  12.  
  13.  
  14. function edycja_linii ($filename, $index, $line) {
  15. $file = file ($filename);
  16. $file[$index] = $line;//usunięty fragment powodował dodawanie linii . "\r\n";
  17. $fp = fopen ($filename, "w");
  18. flock($fp, LOCK_EX);
  19. for( $w = 0; $w < count($file); $w++ )
  20. {
  21. fwrite ($fp, $file[$w]);
  22. }
  23. flock($fp, LOCK_UN);
  24. fclose($fp);
  25. }
  26. //określenie która linia ma być zmieniona
  27. $nr = $_POST['nr'];
  28. $nrl=$nr-1;
  29. //uruchomienie funkcji zmiany danych w linii:
  30. edycja_linii ('meta.csv', $nrl , $new);
  31.  
  32. //zamienia linię pliku meta.csv na ciąg $new - czyli ciąg danych z formularza
  33.  
  34. echo '<a href="http://', $_SERVER['SERVER_NAME'], '/edycja/', $_POST['id'],'">Powrót do edycji ', $_POST['id'], '</a><br>';
  35. echo '<a href="http://', $_SERVER['SERVER_NAME'], '/', $_POST['id'],'" target=_blank>Sprawdzenie efektu zmian na stronie w nowym oknie ', $_POST['id'], '</a><br>';
  36. ?>


Własciwie to dodawanie spacji przy edycji nie miałoby znaczenia, jednak następujący warunek:
  1. <?if ( $src1l == NULL )
  2. {
  3. echo '';
  4. }
  5. else
  6. {
  7. echo '<img style="border: 0px solid ; width: ', $width1l , '; height: ', $height1l ,'; float: left" alt="',$alt1l,'" src="',$src1l, '">';
  8. }
  9. ?>


powoduje, że wkonywana jest część "else ....".
Tak się zaztanawiam jakby to ominąć. Czy jest możliwość żeby napisać ten warunek wg następującego schematu?

<?if ( $src1l == NULL lub same spacje )...
Może ktoś pomóc?



Zlecę poprwakę tego kodu.

Udało się ustalić dlaczego do komórek w tabeli jest dodawana spacja. Tam gdzie w pilku index.php jest $conf[1] itd ze spacją powinno się tą spację usunąć.
prawidłowy kod wygląda następująco:
  1. <?php
  2. // zmienna potrzebna do prawidlowego wczytania includowanych plikow
  3. $add_site = true;
  4. ?>
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  6. <html>
  7. <?php
  8. $go = $_GET['go'];
  9. $fp = fopen('meta.csv', 'r'); // otwarcie pliku tylko do odczytu ("r")
  10. flock($fp, 1); // blokowanie pliku do odczytu
  11. $i = 0;
  12. while(!feof($fp) && $i < $go) { // do póki nie ma końca pliku lub nie ma linii
  13. $linia = fgets($fp, 25000); // pobranie jednej linii do zmiennej $linia
  14. $i++; // podwyższenie zmiennej $i o jeden
  15. }
  16. flock($fp, 3); // odblokowanie pliku
  17. fclose($fp); // zamknięcie pliku
  18. $conf=explode ('|', $linia);
  19.  
  20. echo "<form action='edit.php' method='POST'>
  21. CZĘŚĆ NIEWIDOCZNA - SEKCJA HEAD<br>
  22. <table>
  23. <tr>
  24. <td>id<br><textarea name='id' cols='25' rows='7'>$conf[0]</textarea></td>
  25. <td>description<br><textarea name='description' cols='40' rows='7'>$conf[1]</textarea></td>
  26. <td>keywords<br><textarea name='keywords' cols='40' rows='7'>$conf[2]</textarea></td>
  27. <td>title<br><textarea name='title' cols='40' rows='7'>$conf[3]</textarea><td></tr></table>
  28. CZĘŚĆ WIDOCZNA<br><br>
  29. Tytuł lewego dolnego tekstu - lewydolnytyt<br><textarea name='lewydolnytyt' cols='50' rows='1'>$conf[4]</textarea><br><br>
  30. Lewy dolny tekst - lewydolnytxt<br><textarea name='lewydolnytxt' cols='150' rows='7'>$conf[5]</textarea><br><br>
  31. <input type='submit' name='submit' value='zapisz' />"
  32. ?>

Dodatkowo skrypt z pliku edit.php nie działał prawidłowo ze względu na zapis w 16 linii: $file[$index] = $line;//usunięty fragment powodował dodawanie linii . "\r\n";
Tam powinno być:
  1. $file[$index] = $line. "\n\r";

W zasadzie to nie rozumiem dlaczego po \n nie dodaje linii. Z tego co rozumiem z opisów tak powinno być. Może ktoś doradzić?

A jednak dodaje linię. Sytuacja jest taka, że bez \n linia znajdująca się pod linią edytowaną wskakuje do linii edytowanej, a jak dodam \n to dodaje nową pustą linię. Jak to zrobić żeby było prawidłowo?


Ten post edytował amatorph 25.06.2016, 12:35:02
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 15:17