[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    если я правильно понял, что ты хочеш - делай так:
    PHP:
    if (isset($_POST['id'])) $id $_POST['id']; 
     
    1 person likes this.
  2. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    register_globals есть, но юзать не рекомендую.
     
  3. Balvan

    Balvan Member

    Joined:
    11 Mar 2009
    Messages:
    66
    Likes Received:
    5
    Reputations:
    0
    А как можно подсчитать кол-во вхождений символов в строке(тексте)?

    ну вот в общем есть один метод расшифровки сообщений "статистический" называется! Т.е. есть определённая статистика по "вхождению" букв в текст(есле надо преведу вам её позже, щас в универ бежать надо :) ) и вот собирается статистика с зашифрованного сообщения, а после сравнивается с "табличными" значениями и затем заменяются буквы.
    вот например буква "а" встречается допустим 15 раз на 100 символов, сняв статистику с зашифрованного сообщения видим что "ы" встречается также 15/100 раз ну и значит заменяем все "Ы" на "А".
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?php
    echo substr_count("This is a test""is"); // 2
    ?>
    http://ru.php.net/substr_count
     
    1 person likes this.
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Balvan
    PHP:
    print_r(count_chars('Какая-то произвольная строка',1));
    Правда все равно шифр простой замены на коротком сообщении вряд ли можно разгадать, плюс многие буквы встречаются с одинаковой вероятностью (опять таки для языка в целом, но не для данного сообщения)
     
    _________________________
    3 people like this.
  6. NuR

    NuR Elder - Старейшина

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    http://www.sendspace.com/file/la1dhk

    тут специальная програмулина для частотного криптоанализа =) ею будет проще ;) сначала кормишь ей текст что в архиве или любой другой, потом свой шифротекст, а дальше ты сам знаешь что делать)
     
    1 person likes this.
  7. Mosvit

    Mosvit Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    86
    Likes Received:
    16
    Reputations:
    1
    Помогите исправить ICQ-бот на PHP что бы он при получении сообщения от кого-либо отправлял сообщения с текстом из текстового файла по-строчно, с небольшим интервалом времени, как бы имитируя разговор настоящего человека.
    Т.е. на каждое полученое сообщение от одного номера отвечал новой фразой из текстового файла.


    Code:
    <?
    include "c99phpicq.php";
    set_time_limit (0);
    ignore_user_abort(true);
    $icq = new ICQclient("uin","pass");
    $icq->errorstream = false;
    $icq->dbgstream = false;
    $icq->connect();
    $icq->setstatus("NA","WORK");
    $icq->setstatusflags("DCCONT","");
    $icq->login();
    while ($icq->socket) 
    { 
      $icq->listen(); 
      if ($icq->ismessage()) 
      { 
        $uin = $icq->inLastVar["uin"]; 
        $text = $icq->inLastVar["text"]; 
        $mid = md5($icq->inLastVar["mid"]); 
        $text = trim($text); 
    
    /*скрипт заканчивает свое выполнение --дисконнект бота*/
        if ($text == "!exit"  && $uin=="uin_admin") 
        { 
        exit; 
        } 
    
    
    
        switch($text)
        {
          case "/nomer" :
          $icq->message_send($uin,"message"); 
          break;
          default:
          $icq->message_send($uin,"Меня сейчас нет. :)"); #по умолчанию ответ бота 
        }
    
    /* запись всех посланных сообщений боты*/
       
        $log="log.txt"; 
        $fp = fopen($log,"a+"); 
        fwrite($fp,"$uin:$text\n"); 
        fclose($fp); 
    
       } 
    } 
     
  8. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Вопрос php-гурам :)
    Дали мне магазин на реконструкцию, а там код куда попало, раскидан весь как зря, даже копаться в лом теперь. Как можно его структуировать в более-мение читаемый вид? Помню в дримвейвере была такая кнопка для html кода, а как то же самое сделать с php?

    Спасибо!
     
    1 person likes this.
  9. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    На ачате через js, через php никак(именно через HTTP хедары) ибо это делает клиент, в смысле передает рефферер.
     
  10. lothlorian

    lothlorian Elder - Старейшина

    Joined:
    19 Jun 2007
    Messages:
    58
    Likes Received:
    27
    Reputations:
    0
    есть php скрипт для поиска файлов на сервере:

    PHP:
    <?php
    scan_dir
    ("/xampp/htdocs");
      
    ////////////////////////////////////////////////////////// 

      // Рекурсивная функция - спускаемся вниз по каталогу 

      ////////////////////////////////////////////////////////// 

      
    function scan_dir($dirname

      { 

        
    // Объявляем переменные замены глобальными 

        
    GLOBAL $text$retext

        
    // Открываем текущую директорию 

        
    $dir opendir($dirname); 

        
    // Читаем в цикле директорию 

        
    while (($file readdir($dir)) !== false

        { 

          
    // Если файл обрабатываем его содержимое 

          
    if($file != "." && $file != ".."

          { 

            
    // Если имеем дело с файлом - производим в нём замену 

           
    if(is_file($dirname."/".$file)) 

            { 


    //echo $file."<br>";


    $findme   '156_med.jpg';

    $pos strpos($file$findme);

    if (
    $pos !== false) {
    echo 
    $dirname."/".$file."<br>"."\n";

    $f fopen("data.txt""a+");
    fwrite($f$dirname."/".$file."\n");
    fclose($f);

    }

           } 

            
    // Если перед нами директория, вызываем рекурсивно 

            // функцию scan_dir 

            
    if(is_dir($dirname."/".$file)) 

            { 

            
    //  echo $dirname."/".$file."<br>"; 

              
    scan_dir($dirname."/".$file); 

            } 

          } 

        } 

        
    // Закрываем директорию 

        
    closedir($dir); 

      }

    ?>
    файлов и папок на сервере ооочень много.

    через пару минут выполнения выдаёт internal server error

    уже не знаю куда копать... и в чём проблема в скрипте или сервер...

    php.ini (есть возможность ред.) уже весь перекопал,
    memory limit увеличивал (не помогло).

    Подскажите в чём может быть проблема?
    и как можно оптимизировать скрипт.
     
  11. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    lothlorian system/exec/passthru заблокированы что ль, что приходится так извращаться?

    Попробуй убрать рекурсию, точнее сделать ее немного по другому. Ака закрывать все открытые ресурсы, до вызова функции.

    PHP:
    <?php
    set_time_limit
    (0);
    scan_dir("/xampp/htdocs");
      
    ////////////////////////////////////////////////////////// 
      // Рекурсивная функция - спускаемся вниз по каталогу 
      ////////////////////////////////////////////////////////// 
      
    function scan_dir($dirname
      { 
        
    $dirs = array();
        
    // Объявляем переменные замены глобальными 
        
    GLOBAL $text$retext
        
    // Открываем текущую директорию 
        
    $dir opendir($dirname); 
        
    // Читаем в цикле директорию 
        
    while (($file readdir($dir)) !== false
        { 
          
    // Если файл обрабатываем его содержимое 
          
    if($file != "." && $file != ".."
          { 
            
    // Если имеем дело с файлом - производим в нём амену 
           
    if(is_file($dirname."/".$file)) 
            { 

                
    //echo $file."<br>";

                
    $findme   'background.png';

                
    $pos strpos($file$findme);

                if (
    $pos !== false
                {
                
    ##echo $dirname."/".$file."<br>"."\n";

                
    $f fopen("data.txt""a+");
                
    fwrite($f$dirname."/".$file."\n");
                
    fclose($f);
                }
           } 
            
    // Если перед нами директория, вызываем рекурсивно 
            // функцию scan_dir 
            
    if(is_dir($dirname."/".$file)) 
            { 
            
    //  echo $dirname."/".$file."<br>"; 
                
    echo " ";
                
    $dirs[]=$dirname."/".$file;
            } 
          } 
        } 
        
    // Закрываем директорию 
        
    closedir($dir); 
        while (
    $one array_pop($dirs))
        {
            
    scan_dir($one);
        }
      }
    ?>
     
    _________________________
  12. kevmen

    kevmen Member

    Joined:
    29 Oct 2008
    Messages:
    147
    Likes Received:
    23
    Reputations:
    0
    как проверить существует ли запись в бд?
    PHP:
      $true=mysql_query("SELECT * from users WHERE name=$name");
         if(
    $true=TRUE){}
    Не работает
     
    #9812 kevmen, 30 Apr 2009
    Last edited: 30 Apr 2009
  13. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    да и зря ты переменныю так называл...
     
    1 person likes this.
  14. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    kevmen Тру :-D

    PHP:
    if (mysql_query('SELECT * from users WHERE name=\''.mysql_real_escape_string($name)."'"))
    {
    echo 
    'запись есть';
    }
    И еще - а вы уверены, что переменная $name - установлена?
     
    _________________________
    1 person likes this.
  15. kevmen

    kevmen Member

    Joined:
    29 Oct 2008
    Messages:
    147
    Likes Received:
    23
    Reputations:
    0
    ну разумеется,это лишь пример,спасибо,разобрался :)
     
  16. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    if (mysql_num_rows ($true) > 0) {
    // запись есть
    }
     
  17. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    PHP:
    $this->abc();
     
  18. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    всем здравсвуйте.
    есть кусок кода и дальше идет отправка сообщения на мыло через стандартную функцию mail().
    Вопрос в том как можно немного модифицировать дату отправки. т.е. по дефолту дата отправки ставит нынешняя.
    как можно изменить ее на вчерашнюю? видел делали, но вопрос как?
     
  19. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    2Extremal,
    меня инетерсует не как изменить саму дату. а как изменить дату отправки в отправленном письме?
     
  20. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Попробуйте отправлять мыло с хэдерами, которые вы сами пропишете
     
Thread Status:
Not open for further replies.