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

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

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

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    И потом, вероятно, складывать через imagesetpixel().
    Попробую, должно получится.
     
  2. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    такой вопрос, нетли функции для замени html тегов на bb коды,желательно по виборке,
    если нету то подскажите как будет летше заменить <img src="тут ссылка"> на [​IMG]
     
  3. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    qaz функции - нет. Скриптов - вагон и маленькая тележка. Спросите у гугла
     
    _________________________
  4. dokwill

    dokwill New Member

    Joined:
    25 Jun 2007
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    Подскажите конструкцию. Есть файл - in.txt - в нем список файлов в столбец.
    Нужно проверить наличие этих файлов в каталоге. результаты записать в result.txt
    Спасибо....
     
  5. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    dokwill, как вариант, можно добавить файлы из каталога в массив и список файлов из in.txt тоже в массив, после чего пройтись по массиву списка файлов проверяя с помощью функции in_array есть ли в массиве из каталога значение из списка файлов.

    Deni777 парсер чего?
    А вообще в разделе о работе за символическое вознаграждение напишут все что угодно.
     
    1 person likes this.
  6. dokwill

    dokwill New Member

    Joined:
    25 Jun 2007
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    файлов около 70000
    на мой взляд - рациональнее перебором
     
  7. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    есть текст, к примеру ,,бла бла бла 8 6 бла бла бла,,

    как удалить всё то што нходится после первого попавшегосся числа и вместе с ним??(текст может быть разный)
     
  8. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    qaz
    PHP:
    $str preg_replace("#\d.*#"""$str);
    echo 
    $str;
     
    #19228 Skofield, 12 Sep 2011
    Last edited: 12 Sep 2011
    2 people like this.
  9. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,519
    Likes Received:
    401
    Reputations:
    196
    С недавнего времени один сервис, который я использовал в своем скрипте, как то странно себя начал вести. Он отдает только ~400kb данных (HTTP headers и несколько строк непосредственно html кода ), а дальше все - не качает.
    Wget точно так же себя ведет. Сервис прекрасно работает, из браузера открывается, с других серверов тоже открывается. Я думаю, что просто Ip моего сервака забанили, но в таком случае невозможно было бы приконнектится еще на стадии открытия сокета, если фаерволом, или хотя бы 403 бы отдавалось, если htaccess. Но к сайту можно приконнектится и даже слить первые несколько Кб данных, а потом стопорится.
    Почему так происходит?
     
    1 person likes this.
  10. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    привет бразы :) помогите пожалуйста
    есть массив
    $file_list = scandir('papka/1');
    содержимое обычно такое
    нужен скрипт который бы в переменную выносил бы самую позднюю дату, данном случае 22-09-11
    чтобы было $result = '22-09-11';
    либо же если массив такой -
    переменная должна быть $result = 'none';
     
  11. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Kruzak
    PHP:
    <?php
    foreach($files as $file)
    {
        if(
    $file != '.' && $file != '..')
        {
            
    $date explode('-',$file);
            
    $seconds mktime(000$date[1], $date[0], $date[2]);
            
            if(
    $max $seconds)
                
    $max $file;
        }
    }
    ?>
     
    1 person likes this.
  12. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    Doom123, спасибо +++ ;)
    еще вопрос есть друзья, а точнее проблема

    есть страница, на ней javascript каждую секунду рефрешит один скрипт (POSTом)
    этот скрипт добавляет очки в игре
    очки должны выдаваться 1 раз в сутки, если человек брал за последние 24 часа то ничего ему не выдается
    вот собственно проблема -
    допустим заходит игрок на страницу и сразу начинаются запросы к скрипту
    далее скрипт коннектится к бд и видит что игрок сегодня не получал очков и выдает очки далее добавляет запись в бд
    и вот бага - допустим если скрипт запустить одновременно то иногда случается что очки выдаются по 2 раза за день
    я так понимаю что бд подтормаживает и скрпит еще не успевает получить актуальную инфу и думает что сегодня еще не выдавались очки и выдает их

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

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

    типа этого

    for ($i = 1; $i <= 1000; $i++) {
    $me.=md5(date('r').rand(1000,99999));
    }
    но ведь за это наверное хостер выгонит)

    какие еще варианты? код игры очень большой, некоторые части зашифрованные и перемешанные
    не поймешь в большинстве случаев что и где
     
  13. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Kruzak почитайте что такое транзакции в СУБД. Задержка ничего не решит. Именно ваш случай можно решить просто и без транзакций:

    1) Таблица в базе должна иметь уникальный ключ состоящий из записи (Имя пользователя, Год-Месяц-День)
    2) Вставку в базу осуществлять как INSERT IGNORE `table`(`name`, `date`) VALUES ('$name', '$date');
    3) Проверять с помощью mysql_affected_rows количество вставленных данных, если вставка успешна - инкремент, или что вы там делаете.

    Приблизительный код:
    PHP:
    $conn = new mysqli("localhost""user""password""base");
    $conn->prepare("INSERT INTO `table` VALUES (?, ?)");
    $conn->bind_param('ss'$_POST['name'], $date);
    $conn->execute();

    if (
    $conn->affected_rows 0) {
      
    // Сегодня пользователя еще не было, поощряем его
    }
    Как это работает? По сути это реализация мьютекса. Мы атомарно проверяем можно ли записать данные и блокируем все другие попытки записи.

    Плюс хорошо бы не гонять запрос каждый раз, а записывать дату доступа например в сессию. Ничего плохого от этого не будет - при отсутствии сессии мы все равно попытаемся вначале проверить через базу.

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

    dokwill http://php.net/fopen http://php.net/fgets http://php.net/fwrite http://php.net/file_exists Больше вам ничего не нужно
     
    _________________________
    #19233 Gifts, 15 Sep 2011
    Last edited: 15 Sep 2011
  14. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Хлопцы умелые)
    Нужен дико стандартный скрипт поиска файлов в директории и ее поддиректориях

    знаю что жто стандартная весчь, но все обыскал чтобы найти готовое решение (сам не программист)

    нужно чтобы находил все файлы например TXT в директории и ее поддиректориях и открывал а потом закрывал
    (внутрь этого засуну свой скрипт поиска того что мне нужно внутри каждого файла уже родил)))
    folder
    --subfolder
    ---subsubfolder
    -----01.txt
    -----02.txt
    -----03.txt
    --subfolder
    -----01.txt
    -----02.txt
    -----03.txt
    ---subsubfolder
    -----01.txt
    -----02.txt
    -----03.txt

    знаю что как то через рекурсию делается, но поскольку баклан в PHP то не получается (честно пробовал сам)))

    помогите плиз
    с меня жирный плюс в карму =)
     
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    megageorge http://ru.php.net/readdir примеры + комментарии
     
    _________________________
  16. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    PHP:
    function rd($d)
    {
        foreach(
    glob($d.'/*') as $cd)
        {
                if(
    is_dir($cd))
                    
    rd($cd);
                else
                {
                  if(
    pathinfo($cd,PATHINFO_EXTENSION)=='txt')
                    echo 
    $cd.' -> do something<br>';
                }
                
        }
    }
    rd('some folder');
     
  17. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0

    спасибо Gifts за направление разума к обучению
    спасибо Чакэ за готовое решение




    скрипт полностью рабочий получился, прикручивал всего 5 мин, на денвере все нормуль работет=))

    единственное что пришлось еще добавить времени на выполнение скрипта, а то объем информации большой, подвисает)))

    ini_set("max_execution_time", "60");

    обоим плюсанул в репу))

    с прошедшим днем кодера всех =)
     
    #19237 megageorge, 15 Sep 2011
    Last edited: 15 Sep 2011
  18. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Подскажите как вывести дату - вескресенье прошлой недели
    ТОесть если сейчас запустить то это будет 11.09.2011
     
  19. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Byrger
    PHP:
    <?php
    echo date("d.m.Y"strtotime("last sunday"));
    ?>
     
  20. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    mail($email23,$theme23,$platite, "From: \r\n name;");

    как добавить правильно строчку

    "Content-Type: text/html; charset=utf-8"

    ато майл.ру почемуто ироглифы принимает :confused:
     
Thread Status:
Not open for further replies.