Маленький кусочек кода но я в с пхп на ВЫ

Тема в разделе "PHP", создана пользователем extrimportal, 14 ноя 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. extrimportal

    extrimportal

    Регистр.:
    28 ноя 2008
    Сообщения:
    561
    Симпатии:
    74
    Помогите плиз. Есть скрипт вида
    PHP:
    $log $_GET['data'];
    $fp fopen("log.txt","a+");
    fwrite($fp,"$log \r\n");
    fclose($fp);
    Помогите дописать его что бы перед добавлением была проверка на существование идентичных записей. Если такая строка существует, не дописывать. В каждой строке по слову. И хорошо бы что бы эти слова были не длиннее 20 символов. Спасибо.
     
  2. Sanja_

    Sanja_ Создатель

    Регистр.:
    9 окт 2009
    Сообщения:
    27
    Симпатии:
    8
    так попробуй!
    PHP:
    $log $_GET['data']; 
    $fp fopen("log.txt","a+");
    if(
    strpos($fp,$log) === false and strlen($log) < 21
    fwrite($fp,"$log \r\n"); 
    fclose($fp); 
     
  3. Google.com

    Google.com Читатель

    Заблокирован
    Регистр.:
    16 фев 2010
    Сообщения:
    250
    Симпатии:
    295
    PHP:
    <?php
    $log 
    $_GET['data'];
    $str=file("log.txt");
    if(
    strlen($log)<=20){
        
    $flg=false;
        foreach(
    $str as $str2){        
            if(
    $log=$str2$flg=true;        
        }
        if(!
    $flg){
            
    $fp fopen("log.txt","a+");
            
    fwrite($fp,"$log \r\n");
            
    fclose($fp);  
        }
    }
    ?>
     
  4. extrimportal

    extrimportal

    Регистр.:
    28 ноя 2008
    Сообщения:
    561
    Симпатии:
    74
    Нет. Ни первый не второй не фурычат...
    получаю
    class.game
    class.game
    class.game
    class.game
    class.game

    Еще как то можно?
     
  5. Sanja_

    Sanja_ Создатель

    Регистр.:
    9 окт 2009
    Сообщения:
    27
    Симпатии:
    8
    а что передаётся скрипту, тоесть в переменную $log
    попробуй ещё так пробелы почистел
    PHP:
    $log trim($_GET['data']);  
    $fp fopen("log.txt","a+"); 
    if(
    strpos($fp,$log) === false and strlen($log) < 21)  
    fwrite($fp,"$log \r\n");  
    fclose($fp); 
    и так ещё
    PHP:
    $log trim($_GET['data']);  
    $fp file_get_contents("log.txt"); 
    if(
    strpos($fp,$log) === false and strlen($log) < 21)  
    file_put_contents($fp,"$log \r\n",FILE_APPEND);  
    поидее должно работать, тут идёт поиск то что попадает в переменную лог и если нету идёт сравнение на символы если меньше 21 тогда будет писать
     
    extrimportal нравится это.
  6. extrimportal

    extrimportal

    Регистр.:
    28 ноя 2008
    Сообщения:
    561
    Симпатии:
    74
    стучалка :-]
    передаёт адрес

    первая не работает. Вторая вообще не добавляет. Сорри что так долго, инет голимый ужас!
     
  7. Google.com

    Google.com Читатель

    Заблокирован
    Регистр.:
    16 фев 2010
    Сообщения:
    250
    Симпатии:
    295
    PHP:
    <?php
    $log 
    $_GET['data'];
    $str=file("log.txt");
    if(
    strlen($log)<=20){
        
    $flg=false;
        foreach(
    $str as $str2){    
            if(
    trim($str2)==$log){$flg=true;}        
        }
        if(!
    $flg){
            
    $fp fopen("log.txt","a");
            
    fputs($fp,$log."\r\n");
            
    fclose($fp);  
        }
    }
    ?>
     
    extrimportal нравится это.
  8. frantz1488

    frantz1488

    Регистр.:
    21 мар 2010
    Сообщения:
    162
    Симпатии:
    43
    PHP:
    <?php    
    $log 
    $_GET['data']; 
    $logtxt file_get_contents("log.txt");
    // проверяем наличие такой же строки
    if (preg_match("/$log/i""$logtxt")) { 
        echo 
    "Вхождение найдено.";
    } else { 
        echo 
    "Вхождение не найдено."
        
    // Обрезаем слово до 20 символов
    $log20 substr ($log020);
        
    // Записываем
    $fp fopen("log.txt","r+"); 
    fwrite($fp,"$log20 \r\n$log.txt"); 
    fclose($fp); 
    }
    ?>
    Этот код код точно будет работать
     
    extrimportal нравится это.
Статус темы:
Закрыта.