Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wczytywanie zawartości pliku txt do tablicy array.
Forum PHP.pl > Forum > Przedszkole
emillo91
Witam. Chciałem się zapytać jak przekazać zawartość pliku txt do tablicy array(). Potrzebne mi jest to ponieważ napisałem skrypt podmieniający znaki tekstowe na emotikony .Skrypt oczywiście działa tylko że symbole i linki do ich zamienników znajdują się pezpośrednio w skrypcie a ja chciałbym żeby wszystko było pobierane z pliku tekstowego .skrypt wygląda tak :
CODE
  1. <?php
  2.  
  3. <!doctype html>
  4. <html lang="en">
  5. <head>
  6. <meta charset="utf-8">
  7. <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
  8. <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
  9. <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
  10. </head>
  11. <body>
  12. <script language="javascript">
  13. function insertAtCursor(myField, myValue) {
  14. //IE support
  15. if (document.selection) {
  16. myField.focus();
  17. sel = document.selection.createRange();
  18. sel.text = myValue;
  19. }
  20. //MOZILLA/NETSCAPE support
  21. else if (myField.selectionStart || myField.selectionStart == '0') {
  22. var startPos = myField.selectionStart;
  23. var endPos = myField.selectionEnd;
  24. myField.value = myField.value.substring(0, startPos)
  25. + myValue
  26. + myField.value.substring(endPos, myField.value.length);
  27. } else {
  28. myField.value += myValue;
  29. }
  30. }
  31. </script>
  32. <?php
  33. $zatwierdz= $_POST['set'];
  34. $tekst= $_POST['tresc'];
  35. $emotikony = array(":)" => "http://emotikona.pl/emotikony/pic/02icon_mryellow.gif", ":D" => "http://emotikona.pl/emotikony/pic/01icon_lol2.gif", ":p" => "http://emotikona.pl/emotikony/pic/0tongue.gif");
  36.  
  37. //Tworzymy przykładową tablice
  38. foreach ($emotikony as $znak => $emot)
  39.  
  40. $symbol[$znak] = "<img src= \"$emot\" />";
  41. $tekst = str_replace(array_keys($symbol), array_values($symbol), $tekst);
  42. echo '<table border="1"><tr>';
  43. echo '<td><form id="formularz" action="abc.php" method="post"><textarea id="komentarz" name="tresc"></textarea></td>';
  44. foreach ($emotikony as $znak => $emot)
  45. echo"<td><img src= \"$emot\" title=\":)\" onclick=\"insertAtCursor(formularz.komentarz, '$znak')\" alt=\":)\" width=\"16\" height=\"16\" border=\"0\" /></td>";
  46.  
  47. echo '</tr><tr><td><input type="submit" value="wyslij" name="set"/> <input type="reset" value="kasuj" /><form></td></tr></table>';
  48.  
  49. echo $tekst;
  50.  
  51. ?>
  52.  
  53. </body>
  54. </html>


a zawartość pliku txt wygląda tak:

CODE
  1. ":) "= "http://emotikona.pl/emotikony/pic/02icon_mryellow.gif",
  2. ":p" = "http://emotikona.pl/emotikony/pic/0tongue.gif",
  3. ":D" = "http://emotikona.pl/emotikony/pic/01icon_lol2.gif",

Chodzi mi o to że chcę stworzyć plik tekstowy w którym umieściłbym znaki i ich odpowiedniki i wyświetlić jego zawartość za pomocą zmiennej lecz jak podstawie takie coś

$zawartosc - file_get_contents('buzki.txt');

$emotikony = array($zawartosc);

to zamiast graficznych emotek wyswietla mi linki do emotek. Pewnie tak samo wyglądałaby sprawa gdybym wgrał emotki na serwer ftp i podał odnośniki do nich zamiast linków.
Z góry dziękuję za najmniejszą pomoc wink.gif
zbychoCom
Ja bym utworzył skrypt php (emoty.php) i umieścił w nim tablicę

$emotikony[":) "]= "http://emotikona.pl/emotikony/pic/02icon_mryellow.gif";
$emotikony[":p"] = "http://emotikona.pl/emotikony/pic/0tongue.gif";
$emotikony[":D"] = "http://emotikona.pl/emotikony/pic/01icon_lol2.gif";

albo jeszcze lepiej

$emotikony[":) "]= '<img src="http://emotikona.pl/emotikony/pic/02icon_mryellow.gif" alt="smile" />';
...

W skrypcie zrobiłbym

include(PATH.'emoty.php');

i porównywałbym klucze w pętli foreach...
emillo91
a nie można jakoś zaincludować pliku emotki.php ?

Dobra dla estetyki kodu wyciąłem całą tablicę array i zapisałem do innego pliku php po czym zaincludowałem ten fragment z tablicą, do pliku ze skryptem dodawania komentarzy.
!*!
Temat był wałkowany setki razy, na przyszłość użyj wyszukiwarki.

  1. function emoticons($string)
  2. {
  3. $emoticons = array(
  4. ':)' => '1.png',
  5. ':?' => '2.png',
  6. ':|' => '3.png',
  7. ':(' => '4.png',
  8. 'haha.gif' => '4.png'
  9. );
  10.  
  11. foreach($emoticons as $text => $pic)
  12. {
  13. //$string = str_replace($text, $pic,$string);
  14. $string = preg_replace('/'.$text.'/', $pic, $string);
  15. }
  16.  
  17. return $string;
  18. }
  19.  
  20. echo emoticons("ble blxde:):), bla :? bla :(");


A tablicę możesz pobrać tak

  1. $x = include_once 'emoty.php';
  2.  
  3. emoty.php
  4.  
  5. return array();
emillo91
Dobra. Temat mozna zamknąć.
Jakby co to tutaj jest przerobiony skrypt:
CODE
<script language="javascript">
function insertAtCursor(myField, myValue) {
//IE support
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
} else {
myField.value += myValue;
}
}
</script>
<?php
$text= $_POST['tresc'];
$plik =file("images/emoty/emoty.txt");
$ile = count($plik);

echo '<table border="1"><tr>';
echo '<td><form id="formularz" action="s.php" method="post"><textarea id="komentarz" name="tresc"></textarea></td>';
echo '<td>';
for($i=0; $i<$ile; $i++){
$emotka = explode("|!|",$plik[$i]);
$text = str_replace($emotka[0], '<img src="images/emoty/'.$emotka[1].'" />', $text);
if($i%7 == 0){
echo '<br>';

echo "<img src= \"images/emoty/$emotka[1]\" title=\"$emotka[0]\" onclick=\"insertAtCursor(formularz.komentarz, '$emotka[0]')\" alt=\"\" border=\"0\" />";
}
else{
echo "<img src= \"images/emoty/$emotka[1]\" title=\"$emotka[0]\" onclick=\"insertAtCursor(formularz.komentarz, '$emotka[0]')\" alt=\"\" border=\"0\" />";

}
}
echo '</td>';
echo '</tr><tr><td><input type="submit" value="wyslij" name="set"/> <input type="reset" value="kasuj" /><form></td></tr></table>';

echo $text
?>

Podziękowania dla uczestników tematu wink.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.