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

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

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

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    В этой специальной теме новички могут задавать простые вопросы по языку PHP.
     
    fido, BLurpi^_^, DSL@ and 12 others like this.
  2. Darkweider

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

    Joined:
    8 Feb 2007
    Messages:
    142
    Likes Received:
    13
    Reputations:
    0
    как извлечь полную информацию о пользователе, чтобы забанить не только по айпи?
     
  3. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    есть сторока в таком виде "3006 + (40416-966) / 30" мне нужно как нибудь вычислить математически... ((((
     
    1 person likes this.
  4. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    blaga, eval() ?
    Darkweider, инфо о браузере ($_REQUEST[HTTP_USER_AGENT]) + чтонить выцепить с помощью JS
     
    2 people like this.
  5. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Кому интересно моя проблема решилась так:
    Code:
    <?php
    
    $var1 = '3006';
    $var2 = '40416';
    $var3 = '966';
    $var4 = '30';
    $str = '$var1 + ($var2-$var3) / $var4.<br>';
    
    eval ("echo $var1 + ($var2-$var3) / $var4;");
    
    
    ?>
    Пример был взят из мануала. _Great_ +4
     
    2 people like this.
  6. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    можно проще

    Code:
    $expression = "3006 + (40416-966) / 30";
    eval('$result = '.$expression.';');
    Дальше с $result делать че угодно
     
    2 people like this.
  7. Joker-jar

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

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Также для бана часто пользуются комбинацией "бан по Ip" + "бан по кукисам"
     
    2 people like this.
  8. skzi

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

    Joined:
    30 Dec 2006
    Messages:
    65
    Likes Received:
    11
    Reputations:
    5
    как выполнить внешнюю программу на perl ?
    И можно ли посредствами php получить результат от ЕХЕ файла?
     
  9. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    Читай http://www.php.net/manual/ru/ref.com.php
     
    1 person likes this.
  10. spamoney

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

    Joined:
    26 Dec 2006
    Messages:
    120
    Likes Received:
    7
    Reputations:
    1
    Есть две проблемки, помогите решить, пожалуйста, а то я в php вообще не разбираюсь:

    1. Есть скрипт для вывода случайных картинок из папки, как сделать так, чтобы картинки выводились не только из папки images, но и из подпапок, т.е из images/1/2/3.....
    block-Random-image.php
    PHP:
    <?php
    if (!defined('BLOCK_FILE')) {
            
    Header("Location: ../index.php");
            exit;
    }


    ob_start();
    include(
    "modules/Album/album/randomimg.php"); //путь к файлу обработчику
    $script ob_get_contents();
    ob_end_clean();
    $content .= $script;

    ?>
    randomimg.php
    PHP:
    <?php
    $dir
    ="/images";/// Укажите папку с фото
    $openthisdir=opendir($dir);
    while (
    $k=readdir($openthisdir))
    {
    $m=substr($k,-4);
    if (
    $m=='.jpg' or $m=='.png' or $m=='.gif'$array[]=$k;
    }
    closedir($openthisdir);
    $number=rand(0,count($array)-1);
    echo 
    "<center><img src='$dir/$array[$number]' alt='Случайная картинка'></center><br>";
    $size=filesize("$dir/$array[$number]");

    echo 
    "Файл: $array[$number]<BR>";///Вывод названия

    echo "Размер: $size б.<BR>";///Вывод Размера

    ?>
    2. Есть ли такой скрипт, который бы искал в папке images и подпапках, файлы, имена которых содержат пробелы и заменял бы эти пробелы каким-нибудь символом или удалял бы их ?
    т.е pict 1.jpg на pict_1.jpg или pict1.jpg
    Если у кого-нибудь есть выложите пожалуйста.....
     
    #10 spamoney, 28 May 2007
    Last edited: 28 May 2007
  11. Dr.Frank

    Dr.Frank Elder - Старейшина

    Joined:
    31 Jul 2002
    Messages:
    301
    Likes Received:
    72
    Reputations:
    12
    PHP:
    <?php
    if(!$type)
      
    $type=".jpg";
    function 
    cd_dir($dir,$type){
      
    $r=opendir($dir);
      while(
    $p readdir($r)){
        if(
    is_dir("$dir\\$p") && $p!="." && $p!="..")
          
    cd_dir("$dir\\$p",$type);
        elseif(
    $type && strtolower(substr($p,-4))==$type && strstr($p," ")){
          
    rename("$dir\\$p",$dir."\\".str_replace(" ","_",$p));
        }
      }
    }
    cd_dir($dir,$type);
    ?>
    Скрипт корявенький(переделал свой, для схожих потребностей), но работает..(по крайней мере на Винде)

    Заменяет пробелы на символ "_"

    в аргументах скрипта указываешь dir=нужная_папка&type=Нужный_тип_с_точкой_впереди

    например: xxx.php?dir=1&type=.txt

    Если не будет работать - спрашивай...

    Кстати, первый вопрос можешь по аналогии сам сделать
     
  12. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    создай папку или файл с именем 0 или false посмотрим как будет работать.

    внимательно читаем мануал http://php.ru/manual/function.readdir.html
    и видем:
    PHP:
    /* Именно этот способ чтения элементов каталога является правильным. */
        
    while (false !== ($file readdir($handle))) {
            echo 
    "$file\n";
        }

        
    /* Этот способ НЕВЕРЕН. */
        
    while ($file readdir($handle)) {
            echo 
    "$file\n";
        }
     
  13. hhover

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

    Joined:
    21 May 2007
    Messages:
    60
    Likes Received:
    36
    Reputations:
    11
    Можно ли сделать так, чтобы при обращении к любому файлу (например, картинке) в определенной папке на сервере выполнялся php скрипт перед показом ?
     
  14. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    вроде нет. легче обращайся к скрипту а он перекинет на картинку.
     
  15. Dr.Frank

    Dr.Frank Elder - Старейшина

    Joined:
    31 Jul 2002
    Messages:
    301
    Likes Received:
    72
    Reputations:
    12
    Можно, делаешь скрипт, который надо запускать(только чтоб не выводил никаких данных и заголовки не посылал), в конце дописываешь строку:
    PHP:
    header("Content-type:image/gif");
    readfile("Имя_картинки_которую_надо_открыть.gif");
    /*
    (ну или не гиф, а другие типы картинок, тогда
    поменяй Content-type:ТИП_КАРТИНКИ)
    */

    сохраняешь PHP-скрипт с расширением картинки, например 1.gif

    В папке со скрптом создаешь файл .htaccess с такими строками(или, если есть, то дописываешь его):
    PHP:
    <Files Имя_скрипта>
    ForceType application/x-httpd-php
    </Files>
    /*
    в данном случае
    PHP:
    <Files 1.gif>
    ForceType application/x-httpd-php
    </Files>
    */

    и ссылку кидаешь на этот скрипт, а не на картинку
     
    #15 Dr.Frank, 28 May 2007
    Last edited: 28 May 2007
  16. ultimatum

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

    Joined:
    28 Apr 2007
    Messages:
    142
    Likes Received:
    65
    Reputations:
    -13
    delete
     
    #16 ultimatum, 28 May 2007
    Last edited: 4 Dec 2012
  17. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    2Dr.Frank, так будет не очень удобно если там нужно много файлов так сделать. В эштеаксесе тогда лучше прописать что бы все файлы в этой папке обрабатывались как пхп.
     
  18. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    2ultimatum, приписать в файл хостс в винде ип к домменому имени yandex.ru тока это к пхп уже мало чем относиться.
     
  19. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    а разве такое нельзя на пхп сделать? прав не хватит? или вообще нет доступа к файлам пользователя? если нет, тогда только трой
     
    1 person likes this.
  20. Dr.Frank

    Dr.Frank Elder - Старейшина

    Joined:
    31 Jul 2002
    Messages:
    301
    Likes Received:
    72
    Reputations:
    12

    Гм... можно один скрипт сделать с именем, например "files" и передавать ему данные, например xxx.ru/files/1.gif - все работает, проверенно - и один скрипт и все картинки(файлы) передаются с обработкой, т.е. сначала запускается скрипт
     
Thread Status:
Not open for further replies.