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

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

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

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Pashkela Спасибо
     
  2. SkyLine32

    SkyLine32 Member

    Joined:
    1 Mar 2009
    Messages:
    144
    Likes Received:
    22
    Reputations:
    2
    Можно ли в TEXTAREA работать с каждой строкой на php? дайте пример пожалуйста
     
  3. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    var#1:
    PHP:
    <form method="post" />
    <textarea name="txt"></textarea>
    <input type="submit" value=" Send " />
    </form>

    <?php
    if(isset($_POST['txt'])) {
    foreach(
    explode("\n",$_POST['txt']) as $line) {
    echo 
    "line: ".$line."<br />";
    }
    }
    ?>
    var#2:
    PHP:
    <form method="post" />
    <textarea name="txt"></textarea>
    <input type="submit" value=" Send " />
    </form>

    <?php
    if(isset($_POST['txt'])) {
    $lines explode("\n",$_POST['txt']);
    for(
    $i=0;$i<count($lines);$i++) {
    echo 
    "line ".($i+1).": ".$lines[$i]."<br />";
    }
    }
    ?>
     
    #14423 LStr1ke, 17 Mar 2010
    Last edited: 17 Mar 2010
    1 person likes this.
  4. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Короче не понятно, что ты написал, что значит форма в твоем случае, НО. Осмелюсь предположить, что в твоем случае
    то выглядет так:
    PHP:
    <form method='post'>
    <input type='text' name='variable' size='50' value=' Сюда название песни ' />
    <input type='submit' value='Искать' />
    </form>
    <?php
    if(isset($_POST['variable'])) {
    // Тут ты делаешь какие-то манипуляции над variable (название песни) , а именно получаешь с некого сайта
    //список этих песен и выводишь их, а потом хочешь, чтобы в поле куда вводили название,
    //вводить номер из списка, и грабить текст...
    }
    ?>
    Если я правильно понял, то попробую привести тебе похожий пример:
    (написал только что)
    Короче он грабит 10 результатов поиска http://pesni.ru и по кнопке грабит текст песни. Думаю аналагично твоей нужде
    PHP:
    <?php

    # Super Chords Grabber MotherFucker v1.0 epta. by shkolololo

    if(!isset($_GET['action'])) {
    echo 
    "
    <form action = '"
    .$_SERVER['SCRIPT_NAME']."?action=get_list' method='post'>
    <input type='text' name='variable' size='50' value=' Сюда что искать ' />
    <input type='submit' value='Искать' />
    </form>
    "
    ;
    }else {
    echo 
    "<a href='".$_SERVER['SCRIPT_NAME']."'> Новый поиск </a><br />";
        switch(
    $_GET['action']) {
        case 
    "get_list":
            if(isset(
    $_POST['variable'])) {
            
    // Тут я ворую результат поиска
                
    $search_site "http://www.pesni.ru/search_result.shtml?terms=".trim(str_replace(" ","+",$_POST['variable']))."&case=Insensitive&boolean=AND";
                
    $search_site_result file_get_contents($search_site);
                    if(
    preg_match_all('#<font size="3">(.*)</font>.+<a href="(.*)">#isU',$search_site_result,$step_result)) {
                        for(
    $i=0;$i<count($step_result[1]);$i++) {
                            echo 
    "<b>".$step_result[1][$i]."</b> 
                            <form action = '"
    .$_SERVER['SCRIPT_NAME']."?action=get_text' method='post'>
                            <input type='hidden' name='variable' value='"
    .$step_result[2][$i]."' /><input type='submit' value='Покажи текст этой песни' /></form>
                            <br />
                            "
    ;
                        
    // Тут на выводе формируется форма, которая отправляет адрес текста песни, для дальнейшего парсинга
                        
    }
                }else echo 
    "Нихрена ничего не нашлось :(";
            }
        break;
        case 
    "get_text"
        
    //Тут воруем текст песни 
            
    if(isset($_POST['variable'])) {
                
    $search_site_result file_get_contents($_POST['variable']);
                if(
    preg_match("#<center><h1>(.*)</h1>.+<pre>(.*)</pre>#isU",$search_site_result,$result)) {
                echo 
    "<h1>$result[1]</h1><pre>$result[2]</pre>";
                }else echo 
    "Чета не могу прочитать :(";
            }
        break;
        default: echo 
    "Ты ошибся командой епта"; break;
        }
    }
    ?>
     
    1 person likes this.
  5. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Подскажите пожалуйста скриптик, который бы определял рамеры картинкаи, и если они больше 240х320, то уменьшал бы её, а если меньше, то растягивал.
     
  6. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    используй функцию getimagesize

    http://php.su/functions/?getimagesize
     
    _________________________
  7. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    а как сделать ресайз?
     
  8. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    http://devels.ru/files/img_resize.zip
     
    _________________________
    1 person likes this.
  9. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    PHP:
    <?php
      
    function resizeimg($filename$smallimage$w$h
      { 
        
    // Имя файла с масштабируемым изображением 
    //    $filename = "../".$filename; 
        // Имя файла с уменьшенной копией. 
      //  $smallimage = "../".$smallimage;     
        // определим коэффициент сжатия изображения, которое будем генерить 
        
    $ratio $w/$h
        
    // получим размеры исходного изображения 
        
    $size_img getimagesize($filename); 
        
    // Если размеры меньше, то масштабирования не нужно 
        
    if (($size_img[0]<$w) && ($size_img[1]<$h)) return true
        
    // получим коэффициент сжатия исходного изображения 
        
    $src_ratio=$size_img[0]/$size_img[1]; 

        
    // Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились  
        // пропорции исходного изображения 
        
    if ($ratio<$src_ratio
        { 
          
    $h $w/$src_ratio
        } 
        else 
        { 
          
    $w $h*$src_ratio
        } 
        
    // создадим пустое изображение по заданным размерам  
        
    $dest_img imagecreatetruecolor($w$h);   
        
    $white imagecolorallocate($dest_img255255255);        
        if (
    $size_img[2]==2)  $src_img imagecreatefromjpeg($filename);                       
        else if (
    $size_img[2]==1$src_img imagecreatefromgif($filename);                       
        else if (
    $size_img[2]==3$src_img imagecreatefrompng($filename);  

        
    // масштабируем изображение     функцией imagecopyresampled() 
        // $dest_img - уменьшенная копия 
        // $src_img - исходной изображение 
        // $w - ширина уменьшенной копии 
        // $h - высота уменьшенной копии         
        // $size_img[0] - ширина исходного изображения 
        // $size_img[1] - высота исходного изображения 
        
    imagecopyresampled($dest_img$src_img0000$w$h$size_img[0], $size_img[1]);                 
        
    // сохраняем уменьшенную копию в файл  
        
    if ($size_img[2]==2)  imagejpeg($dest_img$smallimage);                       
        else if (
    $size_img[2]==1imagegif($dest_img$smallimage);                       
        else if (
    $size_img[2]==3imagepng($dest_img$smallimage);  
        
    // чистим память от созданных изображений 
        
    imagedestroy($dest_img); 
        
    imagedestroy($src_img); 
        return 
    true;          
      }   
    #use: resizeimg('file', 'file', 600, 450); //x - 600; y - 450
    ?>

     
  10. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Спасибо, попробую разобраться!
     
  11. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $proportion=false, $quality=100) {
    if(!file_exists($src)) return false;
    $size = getimagesize($src);
    if($size === false) return false;
    if($proportion === true) {
    $h0 = $height;
    $height = ($width/$size[0])*$size[1];
    if($height > $h0) { $height = $h0; $width = ($height/$size[1])*$size[0]; }}
    if($width > $size[0]) $width = $size[0];
    if($height > $size[1]) $height = $size[1];
    $format = strtolower(substr($size['mime'], strpos($size['mime'], '/') + 1));
    $icfunc = 'imagecreatefrom'.$format;
    if(!function_exists($icfunc)) return false;
    $x_ratio = $width/$size[0];
    $y_ratio = $height/$size[1];
    $ratio = min($x_ratio, $y_ratio);
    $use_x_ratio = ($x_ratio == $ratio);
    if($use_x_ratio) { $new_width = $width; $new_left = 0; }
    else { $new_width = floor($size[0] * $ratio); $new_left = floor(($width - $new_width) / 2); }
    if(!$use_x_ratio) { $new_height = $height; $new_top = 0; }
    else { $new_height = floor($size[1] * $ratio); $new_top = floor(($height - $new_height) / 2); }
    $isrc = $icfunc($src);
    $idest = imagecreatetruecolor($width, $height);
    if(is_array($dest)) {
    $nd = explode('.', $src);
    $ndc = count($nd);
    $nd[$ndc - 2] .= $dest[0]; $dest = implode('.', $nd); }
    imagefill($idest, 0, 0, $rgb);
    imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
    imagejpeg($idest, $dest, $quality);
    imagedestroy($isrc);
    imagedestroy($idest);
    return $dest;
    }
     
    _________________________
  12. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Огромное спасибо!
    Скрипт отличный и делает как раз то, что надо!
     
  13. Dark_cracker

    Dark_cracker Member

    Joined:
    29 May 2009
    Messages:
    73
    Likes Received:
    8
    Reputations:
    1
    =( не могу понять в чём дело
    setcookie("cookie", "bla", time() +3600); - так не работает
    setcookie("cookie","bla"); - так работает
    хотя на локалке и так и так работает =( не пойму в чём дело
     
    #14433 Dark_cracker, 17 Mar 2010
    Last edited: 17 Mar 2010
  14. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    ohhh с одной формой не понравилось >< сказали с двумя,сделал так
    одна форма ввода песни,другая ввода ее номера,сначала надо ввести название,он покажет,результат название-исполнитель, список нумеруется цифрами. После вывода списка песен и исполнителей,надо ввести во второе поле цифру,которая стоит около списка,но почему то после ввода цифры,во вторую форму,все пропадает
    как реализовать так называемую замену списка текстом песни?
     
  15. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    точно также как и название песни связано с именем файла
     
  16. Травников

    Травников New Member

    Joined:
    17 Feb 2010
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    Привет всем
    Возможно ли реализовать средствами PHP одновременное скачивание нескольких файлов?
     
  17. wildshaman

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

    Joined:
    16 Apr 2008
    Messages:
    477
    Likes Received:
    483
    Reputations:
    99
    Multi_curl
     
  18. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    как преобразовать текст вида "биржа" в такое "%D0%B1%D0%B8%D1%80%D0%B6%D0%B0"?
     
    #14438 Compton, 17 Mar 2010
    Last edited: 17 Mar 2010
  19. svesve

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

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    Народ подскажие

    есть массив по которому бежим while{}
    на каждый элемент выполняется определенный запрос, как можно организовать чтоб после 30 запрсов(30 эл-тов) была пауза секунд 5 - 10 ?
     
  20. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    if ($i == 29) sleep(5);
     
Thread Status:
Not open for further replies.