Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana z odczytu z txt na mysql
Forum PHP.pl > Forum > PHP
tomekpl
Welcome,
I have a problem. I have this code:

Kod
   case 'view':
    
      $data = array();
      $arr = file('messages.txt');
      if(!$_GET['time'])
        $_GET['time'] = 0;
      foreach($arr as $row) {
        $aTemp = null;
        list($aTemp['time'], $aTemp['nickname'], $aTemp['message']) = explode('|', $row);
        if($aTemp['message'] AND $aTemp['time'] > $_GET['time'])
          $data[] = $aTemp;
      }
      //file_put_contents('debug.txt', print_r($data, true));
    break;


I chce go przerobić na odczyt z bazy mysql, q której mam 3 pola
id
nick
tresc
kwiateusz
no to gratuluje chęci, ale manual nie gryzie

coby nie byc taki be w święta to dam Ci zapytanie do mysql_query" title="Zobacz w manualu PHP" target="_manual
  1. SELECT * FROM baza
tomekpl
Z baz to ja umiem odczytywać! Chodzi mi o podmianę, właśnie nie wiem to tego kodu jak to zrobić.. bo w samo view nie wystarczy...

Kod
  <?php
    function replace(&$item, $key) {
      $item = str_replace('|', '-', $item);
    }
    
    if (!function_exists('file_put_contents')) {
          function file_put_contents($fileName, $data) {
              if (is_array($data)) {
                  $data = join('', $data);
              }
              $res = @fopen($fileName, 'w+b');
              if ($res) {
                  $write = @fwrite($res, $data);
                  if($write === false) {
                      return false;
                  } else {
                      return $write;
                  }
              }
          }
      }
    
    //file_put_contents('debug.txt', print_r($_GET, true));
    switch($_GET['action']) {
      case 'add':
        array_walk($_POST, 'replace');
        $arr = file('messages.txt');
        
        if(count($arr) > 10)
          array_shift($arr);
        
        $_POST['nickname'] = htmlentities($_POST['nickname']);
        $_POST['message'] = htmlentities($_POST['message']);
        
      
        $sql="INSERT INTO shout(id, nick, tresc) VALUES('','".htmlentities($_POST['nickname'])."', '".htmlentities($_POST['message'])."')";
  $rezultat = mysql_query($sql) or die(mysql_error());
  
        $time = time();
        $arr[] = $time.'|'.$_POST['nickname'].'|'.$_POST['message'].'|'.$_SERVER['REMOTE_ADDR']."\n";
        file_put_contents('messages.txt', implode('', $arr));
  
        $data['response'] = 'Good work';
        $data['nickname'] = $_POST['nickname'];
        $data['message'] = $_POST['message'];
        $data['time'] = $time;
      break;
      
      case 'view':
        $data = array();
        $arr = file('messages.txt');
        if(!$_GET['time'])
          $_GET['time'] = 0;
        foreach($arr as $row) {
          $aTemp = null;
          list($aTemp['time'], $aTemp['nickname'], $aTemp['message']) = explode('|', $row);
          if($aTemp['message'] AND $aTemp['time'] > $_GET['time'])
            $data[] = $aTemp;
        }
        //file_put_contents('debug.txt', print_r($data, true));
      break;
    }
    
    require_once('JSON.php');
    $json = new Services_JSON();
    $out = $json->encode($data);
    print $out;
  ?>


Z plików txt, aby odczytywało dany moment to jest ok, tylko chodzi mi o polski znaki, które nie są poprawnie wyświetlane, dlatego chciałem zrobić odczyt z bazy. Nie jest to konieczne..

Pytanie:
Wie ktoś jak przerobić, żeby do pliku txt wgrywało słowa z polskimi literami questionmark.gif bo zamienia je na &Auml;

........
Dobra zrobiłem biggrin.gif
Kod
$_POST['message'] = htmlentities($_POST['message']);


wywaliłem htmlentities smile.gif

teraz dam strip_tags i bedzie ok smile.gif
Skie
iconv()
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.