За последние 24 часа нас посетили 53292 программиста и 1765 роботов. Сейчас ищут 1476 программистов ...

Возврат значения из функции

Тема в разделе "PHP для новичков", создана пользователем joost, 15 янв 2008.

  1. joost

    joost Guest

    Код (Text):
    1.  
    2. function file_get_content($url,$str)
    3. {
    4. $ch = curl_init();
    5. curl_setopt($ch, CURLOPT_URL, $url);
    6.  
    7. $this_header = array(
    8.     "Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
    9.     "Referer: http://www.site.com/"
    10. );
    11.  
    12. curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
    13. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    14.  
    15. $str = curl_exec($ch);
    16.  
    17. curl_close($ch);
    18. return $str;
    19. }
    20. $str="";
    21. file_get_content("http://www.my_site.com/",$str);
    22. print $str;
    почему переменая $str остается пустой?
    "http://www.my_site.com/" существует и не пустой.
     
  2. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    Либо передавайте переменную по ссылке и уберите return, либо получайте значение из функции.
     
  3. joost

    joost Guest

    а как получить значение из функции?
     
  4. Сотомайор

    Сотомайор Активный пользователь

    С нами с:
    27 дек 2007
    Сообщения:
    22
    Симпатии:
    0
    Адрес:
    Бобруйск )
    PHP:
    1.  
    2. function file_get_content($url,&$str)
    3. {
    4. $ch = curl_init();
    5. curl_setopt($ch, CURLOPT_URL, $url);
    6.  
    7. $this_header = array(
    8.     "Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
    9.    "Referer: [url=http://www.site.com/]http://www.site.com/[/url]"
    10. );
    11.  
    12. curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
    13. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    14.  
    15. $str = curl_exec($ch);
    16.  
    17. //return $str;
    18. }
    19. $str="";
    20. file_get_content("http://www.my_site.com/",$str);
    21. print $str;
     
  5. free

    free Активный пользователь

    С нами с:
    7 дек 2006
    Сообщения:
    29
    Симпатии:
    0
    А так получить значение функции :)
    PHP:
    1. function file_get_content($url,$str)
    2. {
    3. $ch = curl_init();
    4. curl_setopt($ch, CURLOPT_URL, $url);
    5.  
    6. $this_header = array(
    7.     "Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
    8.    "Referer: [url=http://www.site.com/]http://www.site.com/[/url]"
    9. );
    10.  
    11. curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
    12. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    13.  
    14. $str = curl_exec($ch);
    15.  
    16. return $str;
    17. }
    18. $str = file_get_content("http://www.my_site.com/",$str);
    19. print $str;
    20.  
     
  6. joost

    joost Guest

    с точки зрения производительности - какой вариант лучше?
     
  7. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    joost

    скорее всего без разницы. задержки при получении документа по http будут больше в тысячи раз
     
  8. free

    free Активный пользователь

    С нами с:
    7 дек 2006
    Сообщения:
    29
    Симпатии:
    0
    От контекста зависит как лучше делать, но все-таки неплохо когда функция возвращает значение, хотябы чтобы знать все прошло успешно или нет.

    Разность в скорости думаю незначительна, хотя было бы интересно если кто-гнить протестировал :)
     
  9. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Угу. В данном случае ссылки не нужны ИМХО.
     
  10. joost

    joost Guest

    Cпасибо!