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

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

Thread Status:
Not open for further replies.
  1. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Уговорил :) пример:

    Code:
      $var1 = 'hhh12';
      preg_match('/[0-9]+/', $var1, $matches);
      echo $matches[0];
     
    1 person likes this.
  2. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    PHP:
    function get_int($str) {
        for (
    $i 0$i strlen($str); $i++) {
            if (
    intval($str{$i})) {
                
    $var_int .= $str{$i};
            }
        }
        return 
    $var_int;
    }
    echo 
    get_int($var);
     
    #20362 Skofield, 1 Apr 2012
    Last edited: 1 Apr 2012
    1 person likes this.
  3. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Спасибо, но регулярным выражение более рациональней :)
     
  4. Pr0mo

    Pr0mo Member

    Joined:
    26 Nov 2009
    Messages:
    29
    Likes Received:
    31
    Reputations:
    4
    Здравствуйте, гуру php!

    1) Как запустить cron из под самого php? В том, смысле, что есть один скрипт script.php. Скажем, в нем есть часть кода, которая должна выполниться 1 раз, а другой блок кода по расписанию (либо по таймеру). Будет вообще круто, если подскажите как его из под php еще и остановить.

    2) Есть массив, ок? :) В нем: 1 элемент - строка в виде html, 2 - элемент числа. Как вывести на экран его элементы? Используя foreach и <pre> ничего не вышло, обламывается на обработке 1-го элемента, то есть я не вижу результат в окне браузера.

    Просветите - вышлю шоколадку :) Спасибо!
     
  5. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    1)http://ruseller.com/lessons.php?rub=37&id=1153

    2)Ок. Я так понял что у Вас многомерный массив?
    Чтобы быть в этом уверенным выполните функцию print_r() и результат отправьте мне, будем разбиратся.
     
  6. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Skofield, ноль тоже цифра.

    Pr0mo
    1) При запуске скрипт должен прописать в крон исполняемый скрипт и должен его создать
    Как-то так:
    PHP:
    <?php
    $script_path 
    '/home/user32/script.php'// путь к скрипту (который будет создан)
    $php_path '/usr/local/bin/php'// или если не известно, то $php_path = system('whereis php');
    $cron_job "0 1 * * * {$php_path} -q {$script_path} > /dev/null 2>&1"// каждый час
    $tmp_file '/tmp/temp_Gxfew';
    file_put_contents($tmp_file$cron_job); // записываем во временный файл
    system("crontab {$tmp_file}"); // добавили
    unlink($tmp_file); // удаляем tmp файл
    $source_str '<?php echo \'This is cr0n!\' ?>'// исходник скрипта, который будет запускатся кроном
    file_put_contents($script_path$source_str);
    unlink($_SERVER["SCRIPT_FILENAME"]); // само-удаление
    ?>
    Писал ночью, под одеялом, так-что нужно тестить.

    2) Не понял :)

    P.S.: классно ты хекал говермент сайты через скули. Азербайджан, кажется :)
     
    #20366 AnGeI, 2 Apr 2012
    Last edited: 2 Apr 2012
  7. Pr0mo

    Pr0mo Member

    Joined:
    26 Nov 2009
    Messages:
    29
    Likes Received:
    31
    Reputations:
    4
    daniel777, AnGeI спасибо, дальше разберусь.

    По поводу пункта 2. Массив содержит результат preg_match. Фишка в том, что в нем содержится строка, удовлетворяющая регулярке, типо (<td rowspan="2" id="identy"...).

    print_r() пробовал, выводит:

    PHP:
    Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) );
    P.S. 2 AnGeI: Yeah, but don't tell anyone! :) ©Homer Simpson
     
  8. Кишин

    Кишин New Member

    Joined:
    5 Jul 2011
    Messages:
    42
    Likes Received:
    0
    Reputations:
    0
    Можно ли как то установить время хранеия сессий!?

    Здраствуйте уважаемые знатоки. :)
    Хотел бы узнать можно ли как то установить точное время хранения сессий?
    Вот есть такой всем известнй скрипт создающий сессию:
    PHP:
    <?php
      session_start
    ();
      if (isset(
    $_SESSION['name'])) $name $_SESSION['name'];
      else 
    $_SESSION['name'] = "15St"// Если сессия создается первый раз присваиваем ей значение 15St
    ?>
    Дело в том что он создает сессию которая хранится дольше чем нужно. Как сделать чтоб она хранилась минут 5?
    Сбасиба
     
  9. -=Nikola=-

    -=Nikola=- New Member

    Joined:
    21 Oct 2011
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    Сессия хранится до закрытия браузера, и ее можно принудительно закрыть функцией session_destroy().. это куку можно поставить на какое-то время, или я ошибаюсь
     
  10. Кишин

    Кишин New Member

    Joined:
    5 Jul 2011
    Messages:
    42
    Likes Received:
    0
    Reputations:
    0
    -=Nikola=-
    Да да я знаю что до закрытия браузера, и про куки тоже знаю, вы правильно сказали.
    Но я думал можно как то все настроить это время.
     
  11. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Pr0mo
    var_dump выведет все и даже больше :)
    Если нужно именно что-то делать с массивом, кроме как выводить, тогда лучше всего использовать RecursiveArrayIterator и RecursiveIteratorIterator из SPL.

    Кишин
    Просто нужно собрать коллекцию годных ответов из этой темы:

    https://forum.antichat.ru/showpost.php?p=2883672
    https://forum.antichat.ru/showpost.php?p=2883930
    https://forum.antichat.ru/showpost.php?p=2885336
     
    3 people like this.
  12. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Нужно написать скрипт для вывода на страницу ссылок для переключения страниц новостей.
    Ссылки нужно выводить в таком формате:
    Первая|Назад|-3 страницы|Теперешняя|+3 страницы|Вперед|Последняя
    Пример:
    Первая(1)|Назад(3)|4|5|6|<b>7</b>|8|9|10||Вперед(11)|Последняя(40)

    В массиве $res хранятся сами страницы.
    В переменной $ini[page_count] находится число, которое указывает сколько новостей выводить на страницу(по умолчанию 5).
    PHP:
    $num=ceil(count($res) / $ini[page_count]); //Количество страниц

    if($num>'1'){
    $content.='<a href=/p/1/>Первая</a>|<a href=>Назад</a>';

    if(
    $page=='1'){$x=1;}else{$x=abs($page-3);}

    for(
    $i=$x;$i<$page+3;$i){
    $p=$i++ + 1;

    if(
    $p==$page){$content.="<span class=border><b>$p</b></span>";}else{$content.="<span class=border><a href=/p/$p$p 

    </a></span>"
    ;}

    }
    }
    $content.='<a href=>Вперед</a><a href=/p/'.$num.'/>Последняя</a><br>';

    echo 
    $content;

    Голова совсем не варит, как правильно сделать этот расчёт?
     
  13. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Помогите с датой...

    Требуется сделать на сайте систему времени так, чтобы у каждого пользователя выводилось время его часового пояса.

    Решил пойти таким путем : указал

    PHP:
    date_default_timezone_set('Europe/Dublin');
    т.е по UTC 0 Все время в базу заносится в секундах time() соответственно по нулевому мередиану.

    Потом при выводе времени кидаю ее в самописную ф-ю которая с базы берет часовой пояс текущего пользователя и соотв. делает +х часов или -х часов
    PHP:
    function return_time($sek,$gmt){
    if(
    $gmt>=0){$gmt=str_replace('+','',$gmt); $gmt=$gmt*3600$itog $sek+$gmt;}
    if(
    $gmt<0) {$gmt=str_replace('-','',$gmt); $gmt=$gmt*3600$itog $sek-$gmt;}
    return 
    $itog;
    }
    Но вот беда... Время почему-то сдвигается на +1 час. т.е Для дублина/Лондона он показывает время на час большее чем оно есть на самом деле. Для меня тоже... В чем может быть проблема?

    PHP:
    echo date("H:i:s",time());
    echo 
    date("H:i:s",return_time(time(),$_SESSION['gmt']));
    Выводит например :

    08:45:23 / 18:45:23
    Но реальное время в Дублине/Лондоне 07:45:23 А у меня 17:45:23

    Почему добавляется лишний час?

    UPD : Решено. Проблема была в самом компе. На сервере все отлично работает
     
    #20373 -=Zhenek=-, 3 Apr 2012
    Last edited: 3 Apr 2012
  14. Toxa33rus

    Toxa33rus Member

    Joined:
    31 Mar 2012
    Messages:
    41
    Likes Received:
    6
    Reputations:
    0
    Может с летним временем как-то связно?
     
  15. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    Такой вопрос, есть база маил пасс, мне нужно оделить от базы только пароли и чтобы ети паролинее состояли только из чисел
    делаю скрипт
    PHP:
    <?
    $file file("passf.txt");
    foreach(
    $file as $a => $b)
    {
    $ex explode(":",$b);
    $pass trim($ex[1]);

    if(
    is_int($pass))
    {}else{
    echo 
    $pass."<br>";
    }
    }
    ?>

    но почемуто пароли где есть только цифры тоже выводит, почему? в чём может быть трабла и как исправить?
     
  16. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Сам понял, что написал?
     
  17. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    а не проще было регуляркой?
     
  18. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    да я понял что написал, просто буквы ,,не,, нечаянно слитно написал, и серовно ето факта не меняет, достиг нужного результата при помощи функции
    is_numeric()
    всем спасибо, неактуально
     
  19. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    хелп с логикой скрипта, ибо первый раз столкнулся.
    Есть допустим 50 человек, у каждого свой профиль и два поля, где указано сколько он провел время.
    Допустим я как юзер захожу на спец скрипт, у меня высвечивается текущее зачение, максимальное...
    нажимаю кнопку и все. теперь, если я буду обновлять страницу или смотреть через пхпмайадмин "текущее" значение будет расти.

    бубен просто не варит с бодунищщща, хелп)
     
    #20379 justonline, 4 Apr 2012
    Last edited: 4 Apr 2012
  20. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Помогите пожалуйста.

    Есть файл шаблона содержания
    PHP:
    [FORM]
    text text text
    [/FORM]
    [
    ORDER]
    text2 text2 text2
    [/ORDER]
    Файл шаблона в переменной $theme
    Как вывести на экран содержание блока [FORM][/FORM] или order?
    Какой регуляркой :confused:
     
Thread Status:
Not open for further replies.