[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
    vorona
    PHP:
    $file '<a href="http://site.com/tratatatata">';
    $file=preg_replace('/<a href=\"http:\/\/site.com\/(.*?)\">/sie','"Смотреть онлайн <b><a href=\'_1.php?match=".base64_encode("\\1")."\'>"'$file);  

    echo 
    $file;
     
    _________________________
  2. Axel G

    Axel G New Member

    Joined:
    28 Jan 2009
    Messages:
    86
    Likes Received:
    3
    Reputations:
    3
    Скажите пожалуйста, а возможно ли на php сделать следующее

    Допустим у меня есть ссылка на предпрослушивание трека перед скачиванием: http://example.com/fgH5v.mp3.html

    По запросу http://example.com/ открывается http://example.com/index.php

    Понятное дело, что в корне сайта fgH5v.mp3.html нет и не будет, возможно ли его создать динамически через index.php ?

    На сервере apache не установлен. Nginx + php FAST CGI. Пока линк на предпрослушивание имеет вид http://example.com/listen.php?track=fgH5v.mp3 но так не очень красиво, да и не безопасно = (

    Мужики, есть решение моей проблемы?
     
  3. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Axel G в гугле "nginx чпу"

    На пхп тоже можно, но это будет плохая реализация
     
    _________________________
  4. -=Zhenek=-

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

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    А на безопастность это как повлияет?
    Все равно запрос будет отправлен как надо на http://example.com/listen.php?track=fgH5v.mp3
    мне ничего не мешает сделать так http://example.com/-1'.html

    и получить http://example.com/listen.php?track=-1'
     
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    -=Zhenek=- Ничего, говорите? А если мод_реврайт используется правильный, а не "работает ну и ладно"?

    PHP:
    RewriteRule ^([A-Za-z0-9]+)\.mp3\.htmllisten.php?track=$[L,QSA]
     
    _________________________
  6. Axel G

    Axel G New Member

    Joined:
    28 Jan 2009
    Messages:
    86
    Likes Received:
    3
    Reputations:
    3
    Gifts, спасибо. Пока нет возможности проверить, регулярка правильно составлена? Или лучше [A-Za-z0-9]? Я с регексами на Вы = (

    rewrite ^/([A-z0-9]+.[A-z]+).html$ /listen.php?track=$1? last;
     
    #18006 Axel G, 20 Mar 2011
    Last edited: 20 Mar 2011
  7. -=Zhenek=-

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

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Ха, если код правильный, то тоже все безопасно. Я к тому,что мод реврайт не панацея, что там что там зависит от рук. а ну и если в коде красиво сделать, то в названии песни можно использовать символ ' как мягкий знак при транслите русской песни,а не вырезать его ;)
     
  8. $Lemur$

    $Lemur$ Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    70
    Likes Received:
    15
    Reputations:
    0
    всем привет помогите советом, есть цикл в цикле 1-й цикл берет пару логин:пасс(строка из txt), вторым мне надо взять логин "адресата" (они тоже в txt), на каждую пару логин нужно делать предположим 10 адресетов

    первый цикл

    PHP:
    $lopass file_get_contents("str.txt");
    $user preg_split('/\s+/'$lopass);
    for(
    $i=0;$i<count($user);$i++)
    {
    подскажите как лучше сделать второй? знакомый посоветовал "реплейсить строку исключая первый обработанный элемент"

    примерно так:
    $str=preg_replace("/^.+\s+/","",$str);

    но чето вообще глухо для меня(в ноль работает), какие еще варианты предложите?
     
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    $Lemur$
    PHP:
    $accs fopen('accounts.txt''rb');
    $adresses fopen('addr.txt''rb');

    while (!
    eof($accs) && !eof($addresses))
    {
    $row fgets($accs4096);
    if (!
    $row) break;
    list(
    $login$pass) = explode(':'trim($row));
        for(
    $i=0$i<20$i++)
        {
        
    $addr fgets($adresses4096);
        if (!
    $addr) break;
        
    // Do smth with $login, $pass, $addr
        
    }
    }

    fclose($accs);
    fclose($adresses);
     
    _________________________
  10. winlogon.exe

    winlogon.exe Active Member

    Joined:
    5 Jun 2009
    Messages:
    31
    Likes Received:
    129
    Reputations:
    13
    Как определить содержится ли в переменной числа или числа и буквы?
     
  11. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    winlogon.exe
    1. preg_match("#\d#i",$text);
    2. preg_match("#[0-9a-zA-Z]#i",$text); либо preg_match("#\w#i",$text);, но тут кроме цифр и букв еще знак "_"
     
  12. $Lemur$

    $Lemur$ Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    70
    Likes Received:
    15
    Reputations:
    0
    2:Gifts
    ни как не могу победить

    Fatal error: Call to undefined function eof() in Z:\home\spam.lc\www\index.php on line 4

    подскажи в чем может быть дело?
     
  13. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7
    *facepalm*
    http://www.php.net/manual/en/function.ctype-alnum.php
     
    1 person likes this.
  14. Radish

    Radish New Member

    Joined:
    9 Jan 2011
    Messages:
    20
    Likes Received:
    2
    Reputations:
    2
    winlogon.exe

    is_numeric ()

    Вобщем полный список "is" функций http://www.php.net/manual/en/function.is-int.php
     
    #18014 Radish, 22 Mar 2011
    Last edited: 22 Mar 2011
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    $Lemur$ eof следует заменить на feof. Плюс проверьте условие останова, если количество адресов меньше чем аккаунтов
     
    _________________________
    2 people like this.
  16. alex-desktop

    alex-desktop New Member

    Joined:
    22 Mar 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Вопрос:Как сделать автобан(на php) через iptables
    Объясню - есть скрипт записывающий в файл IP тех кто зашол на страницу
    Нужно сделать чтобы iptables брал ip из того файла и давал бан
    Возможно ли такое?
     
  17. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    alex-desktop поставить на крон парсер этого файла и добавление новых записей в iptables
     
    _________________________
  18. alex-desktop

    alex-desktop New Member

    Joined:
    22 Mar 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    А поподробней? я просто новичек...
     
  19. Nelz.

    Nelz. Member

    Joined:
    2 Aug 2010
    Messages:
    151
    Likes Received:
    7
    Reputations:
    0
    _http://www.php.net/manual/en/imagick.examples-1.php

    как передать Example #4 к пост запрос

    PHP:
    <?php

    $submit 
    $_POST["submit"];
    $text $_POST["text"];
    if (
    $submit) {
    /* Create a new imagick object */
    $im = new Imagick();

    /* Create new image. This will be used as fill pattern */
    $im->newPseudoImage(5050"gradient:red-black");

    /* Create imagickdraw object */
    $draw = new ImagickDraw();

    /* Start a new pattern called "gradient" */
    $draw->pushPattern('gradient'005050);

    /* Composite the gradient on the pattern */
    $draw->composite(Imagick::COMPOSITE_OVER005050$im);

    /* Close the pattern */
    $draw->popPattern();

    /* Use the pattern called "gradient" as the fill */
    $draw->setFillPatternURL('#gradient');

    /* Set font size to 52 */
    $draw->setFontSize(52);

    /* Annotate some text */
    $draw->annotation(2050"$text");

    /* Create a new canvas object and a white image */
    $canvas = new Imagick();
    $canvas->newImage(35070"white");

    /* Draw the ImagickDraw on to the canvas */
    $canvas->drawImage($draw);

    /* 1px black border around the image */
    $canvas->borderImage('black'11);

    /* Set the format to PNG */
    $canvas->setImageFormat('png');

    /* Output the image */
    header("Content-Type: image/png");
    echo 
    $canvas;
    }
    ?>

    я все правильно сделал?
     
  20. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    PHP
    Уверен, вопрос задавался много-много раз, но я не могу найти.
    Есть строковая переменная, состоящая из набора чисел, разделенных между собой запятой $varr = '2,3,10,5'; Как мне разбить эту строку, что бы все числа находились в отдельных переменных:

    $var1 = '2';
    $var2 = '3';
    $var3 = '10';
    $var4 = '5';

    ?

    Ну или в массив записать сразу это дело, не столь важно.
     
    #18020 Sams, 23 Mar 2011
    Last edited: 23 Mar 2011
Thread Status:
Not open for further replies.