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

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

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

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Не обязательный это заголовок, но если тебе нужно их отправить, то без cookie не обойтись.

    Формат такой:
    Параметр1=значение1;параметр2=значение2;

    Ну и т.д через ";"

    Регулярка для вытаскивания кук:
    #Set-cookie: (.*?);#uism
     
  2. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    А какие переменные нужно проверять и как?
    На сайте нет ничего такого что пользователь вводит, у него есть доступ только к строке браузера....вот там он только может изменить переменную.
     
  3. DTW

    DTW Banned

    Joined:
    11 May 2008
    Messages:
    221
    Likes Received:
    52
    Reputations:
    11
    PHP:

    <?php
    function replace_num($num )
    {
         
      
    $from  explode(",",$num);
      
    $to = array("I","II","III","IV","V","VI","VII","VIII","IX");  
      
    $as  str_replace($from,$to,$from); 
      
    $ret implode("."$as);
      return 
    $ret;

     }   
         
    $num "1,2,3,4,5,6,7,8,9";
      echo  
    replace_num($num) ;


    ?>



    как попроще это можна сделать?
     
  4. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Оно и так достаточно просто написано... Можно лишь предложить вариацию на тему:

    Code:
    <?php
    
    	function replace_num ($num) {
    		$a = array (1 => 'I', 2 => 'II', 3 => 'III', 4 => 'IV', 5 => 'V', 6 => 'VI', 7 => 'VII', 8 => 'VIII', 9 => 'IX');
    		$b = array();
    		foreach (explode(',', $num) as $c) $b[] = $a[$c];
    		return implode(',', $b);
    	}
    
    	echo replace_num('1,2,3,4,5,6,7,8,9');
    
    ?>
     
    1 person likes this.
  5. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    можно что-то типа $to[$num] использовать, если я правильно понял
     
  6. t4Nk

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

    Joined:
    23 Sep 2007
    Messages:
    70
    Likes Received:
    33
    Reputations:
    0
    PHP:
    function replace_num($num) {
        
    $to = array(1=>"I",2=>"II",3=>"III",4=>"IV",5=>"V",6=>"VI",7=>"VII",8=>"VIII",9=>"IX");
        return 
    strtr($num$to);
    }
    echo 
    replace_num('1,2,3,4,5,6,7,8,9'); // I,II,III,IV,V,VI,VII,VIII,IX
    сойдет?
     
    #7046 t4Nk, 25 Dec 2008
    Last edited: 26 Dec 2008
    2 people like this.
  7. D0S

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

    Joined:
    6 Jan 2007
    Messages:
    44
    Likes Received:
    7
    Reputations:
    0
    Подскажите как вывести данные из БД таким вот образом:
    PHP:
    <table>
    <
    tr><td>9</td><td>8</td><td>7</td></tr>
    <
    tr><td>6</td><td>5</td><td>4</td></tr>
    <
    tr><td>3</td><td>2</td><td>1</td></tr>
    </
    table>
    Вывожу так :mad:
    PHP:
    $last_post mysql_query("SELECT * FROM noob ORDER BY id DESC LIMIT 9"$db);
    $r_last_post mysql_fetch_array($last_post);
    do
    {
    printf ("<tr><td>%s</td></tr>",$r_last_post["d"]);
    }
    while (
    $r_last_post mysql_fetch_array($last_post));
     
  8. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    Извините за оффтоп, просто нашел классный бесплатный хостинг без баннеров и прочей гадости, хотел поделиться, может кто не знает.
    http://www.zymic.com/
     
    1 person likes this.
  9. antin

    antin New Member

    Joined:
    9 Nov 2008
    Messages:
    11
    Likes Received:
    1
    Reputations:
    0
    Помогите собрать вот такой скрипт:
    Загрузить фотку на сервер, и забить в БД адрес на сервере фотки.
    Или подскажите статейку почитать как сделать самому
     
  10. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    пролистай страницы, тут много про такое было, geforce с этим боролся долго, так что не промахнешься
     
  11. Imperou$

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

    Joined:
    23 May 2008
    Messages:
    90
    Likes Received:
    42
    Reputations:
    0
    В общем раскопал вот такой скрипт (раз мне никто помочь не смог).
    Это граббер линков, выдирает все ссылки с указанного сайта (по идее).

    PHP:
    <?php
        set_time_limit
    (0);
        
    $site 'http://bash.org.ru/';
        
    $mode 2// 1 = Использовать функцию file_get_contents, 2 = Использовать сокеты
        
    foreach(get_urls($site) as $url) {
            echo 
    '<a href="'.$url.'">'.$url.'</a><br>'."\n";
        }
        @
    set_time_limit(0);
        @
    ini_set('max_execution_time'0);
        function 
    get($action) {
            
    $url parse_url($action); 
            
    $fp fsockopen($url['host'], 80$errno$errstr30); 
            if(!
    $fp) {
                return 
    false;
            } else {
                
    fputs($fp'GET '.$action.' HTTP/1.0'."\r\n".
                
    'Host: '.$url['host']."\r\n".
                
    'Referer: '.$url['scheme'].'://'.$url['host'].$url['path']."\r\n\r\n");
                
    $result '';
                while(!
    feof($fp)) {
                    
    $result .= fgets($fp128);
                }
                
    fclose($fp);
                return 
    $result;
            }
        }
        function 
    my_sort($array) {
            
    $new_array = array();
            foreach(
    $array as $value) {
                
    $new_array[] = $value;
            }
            return 
    $new_array;
        }
        function 
    JoinToSite($url$site) {
            
    $domain parse_url($site);
            
    $domain $domain['scheme'].'://'.$domain['host'];
            if(
    $url{0} == '/') {
                
    $link $domain.$url;
            } else if(
    preg_match('~^http(s)?:~i'$url)) {
                if(
    parse_url($urlPHP_URL_HOST) == parse_url($sitePHP_URL_HOST)) {
                    
    $link $url;
                }
            } else {
                if(!
    preg_match('~^(ftp(s)?|javascript|mailto):~i',   $url)) {
                    
    $dirname '';
                    
    $explode explode('/'parse_url($sitePHP_URL_PATH));
                    foreach(
    $explode as $i => $dir) {
                        if(
    $dir && $i != (count($explode)-1)) {
                            
    $dirname .= $dir.'/';
                        }
                    }
                    
    $link $domain.'/'.$dirname.preg_replace('~(\A|/)\./~''$1'$url);
                    
    $regex '~/(?!\.\./)[^\x2F]+/\.\./~';
                    while(
    preg_match($regex$link)) {
                        
    $link preg_replace($regex'/'$link);
                    }
                }
            }
            return (isset(
    $link) ? $link false);
        }
        function 
    GetAllUrlsFromUrl($url$all_links) {
            global 
    $mode;
            
    $first = (($mode == 1) ? @file_get_contents($url) : get($url));
            
    preg_match_all('~<a[^>]+href[\x20]?=[\x20\x22\x27]?([^\x20\x22\x27\x3E]+)[\x20\x22\x27]?[^>]*>~i',  $first$second);
            
    $array_urls = array();
            foreach(
    $second[1] as $link) {
                
    $link JoinToSite($link$url);
                if(
    $link !== false && !in_array($link$all_links)) {
                    
    $array_urls[] = $link;
                }
            }
            return ((
    count($array_urls) > 0) ? $array_urls false);
        }
        function 
    get_urls($url) {
            
    $old_links = array();
            
    $new_links = array($url);
            while(
    true) {
                
    $url $new_links[0];
                
    $old_links[] = $url;
                
    array_shift($new_links);
                
    $get_urls GetAllUrlsFromUrl($urlarray_merge($old_links$new_links));
                if(
    $get_urls) {
                    
    $new_links array_merge($get_urls$new_links);
                } else {
                    if(
    sizeof($new_links)==0) {
                        break;
                    } else {
                        continue;
                    }
                }
            }
            
    sort($old_links);
            return 
    $old_links;
        }
    ?>
    Но выдаёт ошибку

    Warning: parse_url() expects exactly 1 parameter, 2 given in /home/*****/public_html/*****/site/admin/grabber.php on line 45

    Warning: parse_url() expects exactly 1 parameter, 2 given in /home/*****/public_html/*****/site/admin/grabber.php on line 39


    В чём может быть проблема? Помогите хоть вы, плиз.
     
  12. [dei]

    [dei] Active Member

    Joined:
    24 Nov 2008
    Messages:
    171
    Likes Received:
    112
    Reputations:
    5
    У тебя PHP<5.1.2

    http://ua.php.net/parse_url
     
    1 person likes this.
  13. Mixon

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

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Вопшем такой вопрос,как сделать чтобы отсылался POST запрос на страницу без нажатия на клавишу,на ету страницу http://m-z.kz/index.php?go=reg со скрипта,говорят что тут без сокетов не обойтись,плиз,помогите...
     
  14. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Всем привет!

    Есть переменная $im в которой создается картинка! она хранится в tmp!
    Как сохранить ее на сервере? (imagejpg($im,/avatar); не годится) ????
     
  15. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Почему не годится? Мб потому что ты расширение файла забыл указать..
    imagejpeg($im, 'avatar.jpg');
    и кстати слеш ставить не нужно!
     
  16. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Ну а чем тебе сокеты не нравятся? Там всё просто. Ну или для ленивых юзай CURL
     
    1 person likes this.
  17. .:nbd:.

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

    Joined:
    27 Jul 2008
    Messages:
    97
    Likes Received:
    27
    Reputations:
    1
    Как вариант можно ЖабаСкрипт использовать, например так:
    PHP:
    <form action="url"  name="PostForm" id="PostForm" method="POST">
    <
    input type="hidden" name="data" value="PostData">
    <
    input type="submit">
    </
    form>
    <
    script>document.PostForm.submit();</script>
     
    1 person likes this.
  18. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    $packet = "POST HTTP/1.0\r\n";
    $packet .= "Host: $host\r\n";
    $packet .= "Connection: close\r\n\r\n";


    function http_send($host, $packet)
    {
    $sock = fsockopen($host, 80);
    while (!$sock)
    {
    print "\n[-] No response from {$host}:80 Trying again...";
    $sock = fsockopen($host, 80);
    }
    fputs($sock, $packet);
    while (!feof($sock)) $resp .= fread($sock, 1024);
    fclose($sock);
    return $resp;
    }

    echo http_send($host, $packet);
     
  19. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    такой вопрос....
    есть фаил с списком ссылок.. как мне этот список передать в массив и потос в цикл загнать?
    что то типа этого
    $data=file_get_contents(1.txt);
    $data = array();

    for ($i,count($data),$i+) {
    }

    как правельно?
     
  20. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    imagejpeg() Сначало выводит картинку в браузер а потом сохраняет ее! А мне не надо выводить мне надо тока сохранять! как это зделать? :confused:
     
Thread Status:
Not open for further replies.