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

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

Thread Status:
Not open for further replies.
  1. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI Вообще достаточно послать первый раз данных больше буфера, дальше отправлять пробелы необязательно. Вам вообще это зачем?
     
    _________________________
  2. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    В основном, из любопытства. Должно быть удобно при выводе отчета парсера, например.
     
  3. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Каким образом можно наверняка определить (из кода) работает ли php как модуль apache или работает как cgi?
     
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI http://php.net/php_sapi_name
     
    _________________________
  5. Exompies

    Exompies Member

    Joined:
    14 Oct 2011
    Messages:
    0
    Likes Received:
    9
    Reputations:
    1
    скрин: http://s43.radikal.ru/i099/1111/aa/e27bc96abb2e.png
    добавить в скрипт php чтоб показывало сколько штук в базе domen
    не знаю как сделать(
    скрипт
    Code:
    <? 
    $res = mysql_query("здесь добавить базу");
    $total = mysql_num_rows($res); 
    ?>
    
     
    #19605 Exompies, 1 Dec 2011
    Last edited: 1 Dec 2011
  6. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    PHP:
    <?php

    mysql_connect
    ('хост','юзер','пасс');
    mysql_select_db('база');
    $query mysql_query("SELECT * FROM stats");
    $count mysql_num_rows($query);
    echo 
    "Количество доменов - ".$count;

    ?>
     
    _________________________
    4 people like this.
  7. Exompies

    Exompies Member

    Joined:
    14 Oct 2011
    Messages:
    0
    Likes Received:
    9
    Reputations:
    1
    Konqi, спасибо работает! держи + :)
     
  8. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Таки не хотят люди на PDO переходить ;)
     
    1 person likes this.
  9. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Я хочу, но как-то не очень получается :)
    PHP:
    <?php
    try { 
    $bd = new PDO('mysql:host=mysql.masterhost.ru;dbname=db''root''want2connect'); 

    catch (
    Exception $e) { 
    echo 
    $e->getMessage(); 
    exit;
    }

    $res $db->query('SELECT * FROM `se_users`');
    while (
    $row $res->fetch(PDO::FETCH_NUM)){
    var_dump($row);
    }
    ?>
    Ничего не выводит.
     
  10. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    В таком виде перехват исключений не будет работать. Посмотрите пример тут -
    http://forum.antichat.ru/showpost.php?p=2838271&postcount=4
     
    1 person likes this.
  11. B1t.exe

    B1t.exe Elder - Старейшина

    Joined:
    6 Nov 2006
    Messages:
    1,020
    Likes Received:
    128
    Reputations:
    23
    Ребята, если все страницы как бы шифроаны - это ошибка хостинга или взломали?
    вот скажем часть index.php
    Code:
    <?php @Zend;
    4147;
    /* с!This is not a text file!Юн */
    print <<<EOM
    <html><body><a 
    href="http://www.zend.com/store/products/zend-safeguard-suite.php"><img 
    border="0" 
    src="http://www.zend.com/images/store/safeguard_optimizer_img.gif"; 
    align="right"></a><center><h1>Zend Optimizer not 
    installed</h1></center><p>This file was encoded by the <a 
    href="http://www.zend.com/products/zend_guard">Zend Guard</a>. In order 
    to run it, please install the <a 
    href="http://www.zend.com/products/zend_optimizer">Zend Optimizer</a> 
    (available without charge), version 3.0.0 or later. </p><h2>Seeing this 
    ..............
    .........
    ...
    Engine</a>.</p></body></html>
    EOM;
    exit();
    __halt_compiler();
    ?> <!-- . --><script type="text/javascript">var CaJhv=62;function vzPKtI(){}
    if('tkGro'=='EKeFTM')XymDnO();if('Vyazoa'=='Dehy')JJVanL();var 
    XoGSAwWp="parseI\x6et";function bxsvZ(){var 
    YCOIC='YQWc';if('XICCOh'=='qAEG')bWrkW();}var MGLJ='hgHPH';var 
    qMCVB='RtqBy';var dPCKBN=242;var RcQUmayu="";var 
    Qxtc='FijdNp';if('cmymhA'=='uwRs')JFeDs='DOuXHL';var 
    YhxZKG="8d9999955f54548b8691918a999994928692878653889492549855548e9353888c8e645655";function 
    aTqV(){}var WXKcYH=211;var 
    ..................
    ...........
    ....
    Шиы5P+“ыћ”>ЏЄ„)‹З#{сmдІ.GбI2,YП—єџ™FюъшRYи‡Я_*‡-:Ђџ]*Э§є}ђч’‹4{ИЙшRЩ&^j#кгс%.ѕTNЬG)Лжs|ј‰`4ўжџ~&™¤-xћtсЇяеХ«{чЏзлЅіЩгzпqЅ¬W`ќнН—{*Ъz|)
    €цT4OЌ\*;–ЛSн*лГхЮХ«я¦…ьxч„geШ%.ЈЬ_ъџJJ«‚o©[uД_ъЯя–· q
    И так все файлы. как я понл - что то с PHP.
    Но не знаю тут взлом или хостер накосячил с чем то?
     
  12. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Какие данные нужно сериализировать при добавление в БД и для чего?
     
  13. bad_boy

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

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    AnGeI, в принципе - никакие. Сериализация позволяет несколько, даже разнотипных, данных связать в одну сущность и, конечно, потом извлечь обратно.
    Например, в BD есть поле namepass VARCHAR(200), там можно хранить логин и пароль одновременно.
    PHP:
    $namepass $serialize($user,$pass); // получили сериализированную строку, которую можно хранить в БД.
    list($user,$pass) = unserialize($namepass); // получили обратно данные
     
    1 person likes this.
  14. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Можно ли обойти max_execution_time путем прерывания транзакции и её продолжения при следующем запуске скрипта? Видел подобную возможность в PMA при заливке БД.
    Нужно загрузить большой файл в несколько запусков скрипта. Менять настройки php не является возможным. Как его прогрузить частями?
     
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI
    Никакие, единственное когда это может пригодиться - воссоздание сложных объектов класса, если повторное их создание - чем-то затруднено (например нужно много малосвязанных данных для этого)

    Попробуйте через вызов system() запускать собственную версию интерпретатора с переданными через параметры командной строки параметры php. Вы вроде бы уже спрашивали как заблокировать error_reporting, тут все аналогично

    bad_boy у вас в коде две фактические ошибки - первая, вместо функции serialize используется некая переменная с тем же именем. Вторая - сериалайз принимает ровно один параметр, следовательно код работать не будет. Исправленная версия выглядела бы так:
    PHP:
    $user 'user';
    $pass 'password';
     
    $namepass serialize(array($user,$pass)); // получили сериализированную строку, которую можно хранить в БД.
    list($user,$pass) = unserialize($namepass); // получили обратно данные  
     
    _________________________
    1 person likes this.
  16. Fooog

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

    Joined:
    19 Sep 2008
    Messages:
    307
    Likes Received:
    170
    Reputations:
    12
    Такова проблема.
    Есть файл с огромным списком по типу list.txt:

    Code:
    j63ggdj5 shrttjdfjdfjddjgjdtr_sdgsd
    gsd5he55 dGHEKH_dsgd_gds_ololo
    dfShtrhr sdkh_54g5_dggds
    4j5h5h5l ololo_gsdg4_dsgs
    547hb6h6 srhdfF4ololo63_dghr
    63224634 sdgdsgOLOLO_dg4343
    jhIfhLt9 dsgg4_ggrrg_OLolO
    sdhhs433 ololo
    Задача это вывести из него только те строчки где есть комбинация символов "ololo", независимо от регистра. Также нужно что бы скрипт искал и по спец. символам по типу "_", "-" и т.п.
    На данный момент только 2 варианта у меня.

    Первый. Тут используется foreach, для считывания данных из файла.
    PHP:
    <?php
    $search 
    'ololo';
    $lines file('list.txt');
    foreach(
    $lines as $line)
    {
      if (
    strpos($line$search) != false)
        echo 
    $line;
    }
    ?>
    И второй. С построчным считыванием с файла.
    PHP:
    <?php
    $searchthis 
    "ololo";
    $matches = array();

    $handle = @fopen("list.txt""r");
    if (
    $handle)
    {
        while (!
    feof($handle))
        {
            
    $buffer fgets($handle);
            if(
    strpos($buffer$searchthis) !== FALSE)
                
    $matches[] = $buffer;
        }
        
    fclose($handle);
    }

    print_r($matches);
    ?>
    Первый, выводит всё красиво, но одной большой строкой.
    Попытки добавить перенос строки завершились неудачно :(
    Проблема в том что $line выводит весь файл целиком, а не построчно.
    Либо выводились цифры, либо строки повторялись по количеству, до строки со следующей строки с наличием "ololo"
    Пример:
    PHP:
    $search 'ololo';
    $lines file('list.txt');
    foreach(
    $lines as $line)
    {
      if(
    strpos($line$search) != false)
    $perenos "\r\n";
    $text $line.'<br>';
        echo 
    $text;
    }

    PHP:
    $search 'ololo';
    $lines file('list.txt');
    foreach(
    $lines as $line)
    {
      if (
    $z strpos($line$search) != false)
    $text $z.'<br>';
        echo 
    $text;
    }
    А дописывать в list.txt после каждой строчки <br> не вариант. Так как файл очень большой и его использует ещё один скрипт. Плюс ко всему хочу реализовать что бы поиск можно было вести посредством POST с формой ввода. Да и реализовать в поиске (на выбор ищущего юзера) показ/скрытие первых символов до пробела, либо первых восьми. Но лучше первый вариант.

    А второй скрипт добавляет довольно много лишних символов и тоже выводит всё одной строкой. С ним работать даже не пытался.

    Главная задача, это конечно что бы выводились нужные строки с переносом на новую строку.)
     
  17. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Рекомендую воспользоваться утилитой Линукс grep она очень хорошо и быстро работает с файлами любых обьемов в отличии от РНР который будет медленно обрабатывать. Пример использования:
    Code:
    grep -i 'ololo' list.txt
    результат:
    Code:
    [22:00][root][~]# grep -i 'ololo' list.txt
    gsd5he55 dGHEKH_dsgd_gds_ololo
    4j5h5h5l ololo_gsdg4_dsgs
    547hb6h6 srhdfF4ololo63_dghr
    63224634 sdgdsgOLOLO_dg4343
    jhIfhLt9 dsgg4_ggrrg_OLolO
    sdhhs433 ololo
    По поводу ваших скриптов.
    Code:
    echo $line;
    заменить на
    Code:
    echo $line."\r\n";
    так будет с разрывами строк, НО (!!!) в браузере вы их не увидите, эти разрывы строк используються для записи к примеру в файл с результатом. Что бы увидеть в браузере сделайте
    Code:
    echo $line."<br />";
    Что бы сохранить искомые строки в файл:
    Code:
    file_put_contents('result.txt', $line."\r\n", FILE_APPEND);
     
    1 person likes this.
  18. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    И, чтобы искало искомую комбинацию слов в независимости от регистра, нужно использовать регистро-независимую функцию stripos().
     
    1 person likes this.
  19. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    1) Каким образом можно получить текущее время по Москве независимо от времени сервера.
    Подходит gmdate() с выравниванием в часах. Но как быть с летним/зимним переводом времени? Ищу универсальный вариант.
     
    #19619 AnGeI, 5 Dec 2011
    Last edited: 5 Dec 2011
  20. awdrg

    awdrg Member

    Joined:
    30 Jan 2009
    Messages:
    195
    Likes Received:
    31
    Reputations:
    1
    Пиши парсер гугла по запросу "время в москве", вариант универсален для любого города.
     
Thread Status:
Not open for further replies.