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

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

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

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    910
    Reputations:
    863
    код не доконца закончен, нет концовки функции...
    PHP:
     echo '<p class="packing">*'.$upakovka.'</p><br /><br />';
                if (
    $is_grp == 1)

                {
                    echo 
    '<h3>Вместе с этим товаром покупают:</h3>';
                    
    $related GetRelatedGroups($group_id);
                    if (
    is_array($related)) 
     
    _________________________
  2. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Использует ли php сборщик мусора, например, если:
    PHP:
    $str 'foo:bar'; (1)
    $str 'qwerty'; (2)
    Будет ли удалена строка (1) из памяти? Или нужно именно unset?
     
  3. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Скажите, обезопасит ли данный код от проведения sqlinj, или есть более подходящая альтернатива?
    PHP:
    <?php
     $str 
    htmlentities($_GET['id']);
     
    $countstrlen($str)-1;
      while (
    $count <> -1) {        
               if   (
    $str[$count] == '\'' or $str[$count] == '-' or $count 3)  {                           
                            
    ахтунги с проклятиями                     }  
     
  4. .Varius

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

    Joined:
    5 May 2009
    Messages:
    558
    Likes Received:
    289
    Reputations:
    42
    shadowrun, mysql_escape_string() или mysql_real_escape_string()
     
    1 person likes this.
  5. cipa21

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

    Joined:
    9 Apr 2009
    Messages:
    548
    Likes Received:
    146
    Reputations:
    30
    Вопрос к гуру php. В просторах интернета нашел скрипт наложения водяного знака на изображение
    PHP:
    <?php
    header
    ('content-type: image/jpeg'); 

    // получаем имя изображения через GET
    $image $_GET['image']; 

    // создаём водяной знак
    $watermark imagecreatefrompng('1.png');   

    // получаем значения высоты и ширины водяного знака
    $watermark_width imagesx($watermark);
    $watermark_height imagesy($watermark);  

    // создаём jpg из оригинального изображения
    $image_path '/путь к картинке/' $image;
    $image imagecreatefromjpeg($image_path);
    //если что-то пойдёт не так
    if ($image === false) {
        return 
    false;
    }
    $size getimagesize($image_path);
    // помещаем водяной знак на изображение
    $dest_x $size[0] - $watermark_width 5;
    $dest_y $size[1] - $watermark_height 5;

    imagealphablending($imagetrue);
    imagealphablending($watermarktrue);
    // создаём новое изображение
    imagecopy($image$watermark$dest_x$dest_y00$watermark_width$watermark_height);
    imagejpeg($image);
    // освобождаем память
    imagedestroy($image);
    imagedestroy($watermark); 

    ?>
    Так вот хочу спросить, не сильно ли он будит нагружать сервер хостера если выводится будит к примеру 50 картинок на странице? Да, я понимаю что лучше изначально налаживать ватермарк на изображения, но все же вопрос остается в силе. Спасибо!
     
  6. .Varius

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

    Joined:
    5 May 2009
    Messages:
    558
    Likes Received:
    289
    Reputations:
    42
    cipa21, сильно и не сильно - это понятия относительные. Используйте memory_get_peak_usage, чтобы узнать наверняка.
     
    #20666 .Varius, 3 Jun 2012
    Last edited: 3 Jun 2012
    1 person likes this.
  7. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI Будет удалена. Будет ли произведен возврат памяти системе - не уверен.

    shadowrun Используйте PDO или MySQLi модули с плейсхолдерами. Остальное все от лукавого

    cipa21 Если ленитесь прогонять все картинки при загрузке через скрипт - сделайте кеширование картинок, иначе хостер может намекнуть вам о переезде на ВПС
     
    _________________________
    1 person likes this.
  8. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    здрасте
    нужно сделать скрипт, по причине того что не шибко шарю не получается

    есть гора файлов из которых нужно выдрать любой текст по меткам
    например задаем метки

    PHP:
    $begin "Начало удаляемого текста";
    $finish "Конец удаляемого текста";

    $my-file fopen("file.txt""rw");
    и нужно чтобы скрипт вырезал все текста что между метками включая сами метки

    например скрипт в файле нашел такой текст

    PHP:
    Начало удаляемого текста
    Здесь бла бла бла 
    это все удаляем.
    Конец удаляемго текста
    и соответственно в результате своей работы удалил его

    в тексте может быть несколько таких вкраплений которые нужно удалить (2,3,10)


    вот


    мож кто подскажет решение?
    или если лень подскажите алгоритм и какие функции использовать?
    или мож какая готовая программа есть которая умеет так перебирать файлы и вырезать все ненужное по меткам?

    заранее спасибо =))))
     
  9. .Varius

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

    Joined:
    5 May 2009
    Messages:
    558
    Likes Received:
    289
    Reputations:
    42
    megageorge, стоит уточнить: пересечение меток возможно?
     
  10. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    не очень понял что такое пересечение меток

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


    2. Если имеется в виду что возможны ли в тексте вариант типа

    метка 1
    бла бла бла
    метка 1
    бла бла бла
    метка 2
    бла бла бла
    метка 2
    бла бла бла

    то НЕТ невозможен

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

    то есть в тексте файла могут несколько раз повторяться по очереди

    PHP:
    метка1
    бла бла бла удаляем
    метка2

    текст который не удаляем 

    метка1
    бла бла бла удаляем
    метка2

    текст который не удаляем 

    метка1
    бла бла бла удаляем
    метка2
    но они не могут быть внутри друг друга или перекрещиваться
     
    #20670 megageorge, 3 Jun 2012
    Last edited: 3 Jun 2012
  11. .Varius

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

    Joined:
    5 May 2009
    Messages:
    558
    Likes Received:
    289
    Reputations:
    42
    Не проверял, но должно работать:
    PHP:
    preg_replace'#'.$begin.'.*?'.$end.'#m'''$text);
     
    1 person likes this.
  12. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    спасибо вроде работает НО только если метка1, уничтожаемый текст и метка 2 находятся в одной строке

    то есть
    $begin какойто текст $end

    если в тексте они расположены с переносом строки то есть

    $begin
    какойто текст
    $end

    то не работает =(

    тоже думал о регулярках, но видимо если блок текста больше одной строки то они не работают
     
  13. .Varius

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

    Joined:
    5 May 2009
    Messages:
    558
    Likes Received:
    289
    Reputations:
    42
    Пробуйте, должно работать на этот раз:
    PHP:
    preg_replace'#^'.$begin.'.*?'.$end.'$#m'''$text);
     
    #20673 .Varius, 5 Jun 2012
    Last edited: 5 Jun 2012
  14. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    к сожалению и так не пашет

    вот код проверочный, мож я не так чтото делаю?

    PHP:
    $text "
    adgfgfhxbc
    point1  erertertert 
    ewrwewer  point2
    dzfdzfgzdfgz
    "
    ;
    //$text= file_get_contents("cut.txt"); 
    $begin="point1";
    $finish="point2";
    echo 
    $text;
    $newtext preg_replace'#^'.$begin.'.*?'.$finish.'$#m'''$text);
    echo 
    "<br/>".$newtext;  
    в итоге вывода текст один и тот же =(((
     
  15. .Varius

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

    Joined:
    5 May 2009
    Messages:
    558
    Likes Received:
    289
    Reputations:
    42
    PHP:
    preg_replace('#'.$begin.'(.*)?'.$finish.'#s'''$text);
    Моя взяла! :D
     
  16. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    теперь вырезает)))))) огромное спасибо))

    но несколько не то

    PHP:
    $text "
    просто текст

    point1 
    удаляемый текст
    point2

    а здесь у нас был нужный текст, который удалять не надо

    point1 
    удаляемый текст
    point2

    остаток текста

    "
    ;
    функция удалит все начиная от первой point1 и заканчивая последней point2
    то есть текст "а здесь у нас был нужный текст, который удалять не надо" будет удален хотя не обрамлен метками и это текст который не должен быть удален
     
  17. .Varius

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

    Joined:
    5 May 2009
    Messages:
    558
    Likes Received:
    289
    Reputations:
    42
    megageorge
    PHP:
    preg_replace('#'.$begin.'.*?'.$finish.'#s'''$text);
     
    1 person likes this.
  18. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    капец))
    огромадное спасибо за терпение!
    регулярки это сила

    огромный плюс в карму
     
  19. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Файлы:
    file-1.txt
    file-2.txt

    Как удалить из файла, file-2.txt, строки, который содержаться в файле file-1.txt
     
  20. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Adio
    PHP:
    <?php
    $a1 
    = array(12345);
    $a2 = array(12345);
    $a3 array_merge($a1$a2);
    print_r(array_unique($a3));
     
Thread Status:
Not open for further replies.