|
|
|
| Здравствуйте, уважаемые форумчане!
Помогите, пожалуйста, разобраться с использованием curl.
Цель - чтобы присвоить переменной url - адрес, а в другую переменную поместить html - код страницы. Я не могу понять точную последовательность инициализации нужных функций, как получить код страницы, куда и вкак он сохраняется. Постоянно выдает мне ошибку.
Установил самый последний Денвер.
то есть хотелось бы получить что-то следующее:
<?
// задаю адрес страницы, с которой хочу получить код
$url = "site.ru/ page.php";
...
$html_code; // а в эту переменную в итоге хотелось бы получить html-код со страницы page.php
?> | |
|
|
|
|
|
|
|
для: gran-dia
(14.10.2013 в 17:56)
| |
<?php
$url = "site.ru/ page.php";
$html_code = file_get_contents($url);
$html_code;
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(14.10.2013 в 18:26)
| | спасибо) работает!
есть, правда, один момент.
вот код:
<?
// беру страницу справки по данной функции
$url = "http://www.php.su/file_get_contents";
$html_code = file_get_contents($url);
$z = htmlspecialchars($html_code);
echo $z;
?>
|
выводит код страницы. Однако когда открываю через браузер странице и выбираю пункт "просмотр кода страницы", то выдает несколько другой код, более длинный.
Просто копирую в текстовые файлы оба кода и сравниваю по размеру - они разные...
При этом если сделаю
то выводит один к одному как на сайте...
в чем тут может быть проблема?... | |
|
|
|
|
|
|
|
для: mihdan
(14.10.2013 в 18:26)
| | подскажите, пожалуйста, как решить проблему. и так и сяк пробую - не получается... | |
|
|
|
|
|
|
|
для: gran-dia
(15.10.2013 в 14:07)
| | Написать
echo '<pre>'.$html_code.'</pre>';
|
Либо прописать в начале скрипта:
header('Content-type: text/plain');
|
Либо ткнуть правой кнопкой мыши и выбрать в меню "показать исходный код страницы"
....ну и еще много всяких вариантов.... | |
|
|
|
|
|
|
|
для: Sfinks
(16.10.2013 в 20:53)
| |
<?php
header('Content-type: text/plain');
$url = "http://vk.com/id123456";
$html_code = file_get_contents($url);
echo '<pre>'.$html_code.'</pre>';
?>
|
Я уже пробовал так выводить.
посмотрите, не выводит.
Либо ткнуть правой кнопкой мыши и выбрать в меню "показать исходный код страницы"
| Это понятно. Я парсер пишу, поэтому такой вариант не подходит | |
|
|
|
|
|
|
|
для: gran-dia
(14.10.2013 в 17:56)
| | блин. никак не получается.
начал пробовать с curl и отправлять серверу заголовки - тоже не получается.
и еще косяк с кодировкой - выводит кракозябры где должен быть русский текст, код выводит нормально. | |
|
|
|
|
|
|
|
для: gran-dia
(16.10.2013 в 03:10)
| | Очевидно, дело в htmlspecialchars, а может и сайт вас не посчитал человеком, сделав ботом и отдав другую страницу. Пример покажите | |
|
|
|
|
|
|
|
для: mihdan
(21.10.2013 в 17:54)
| | Запускаю код, который указан выше и вот что выдает:
<pre><?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=yes" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="MobileOptimized" content="176" />
<meta name="HandheldFriendly" content="True" />
<base id="base">
<meta name="robots" content="noindex,nofollow" />
<title>Рдуард Болдышев</title>
<script type="text/javascript">
<!--
(function(k,a,d,e,f){function l(){var c=function(){var b=!1;try{b=new XMLHttpRequest}catch(a){try{b=new ActiveXObject("Msxml2.XMLHTTP")}catch(d){try{b=new ActiveXObject("Microsoft.XMLHTTP")}catch(c){b=!1}}}return b?e:f}(),g=function(){var b=k.createElement("div");b.innerHTML='<input type="file" />';b=b.getElementsByTagName("input")[0];return"file"!=b.type||b.disabled?f:e}(),h="ontouchstart"in a?e:f,m;try{m=typeof navigator.geolocation!==d?e:typeof a.google!==d&&typeof google.gears!==d?e:typeof device!==d&&typeof device.getServiceObject!==d?e:typeof Mojo!==d&&"Mojo.Service.Request"!==typeof Mojo.Service.Request?e:f}catch(p){m=f}var l=function(b){try{var d=a.Audio?new Audio:k.createElement("audio");if(d.canPlayType&&d.canPlayType(b)&&"no"!=d.canPlayType(b))return e}catch(c){}return f}("audio/mpeg"),n=function(b){try{for(var a=k.createElement("div"),c=0,g=["webkit","Moz","ms","O",""],h=g.length;c<h;c++){var l=g[c],m=l?l+b:b.toLowerCase();if(typeof a.style[m]!==d)return e}return f}catch(n){return f}}("Transform");return c+g+h+m+l+n+((a.XMLHttpRequest||a.XDomainRequest)&&(a.FormData||a.FileReader&&(a.XMLHttpRequest&&XMLHttpRequest.sendAsBinary||a.ArrayBuffer&&a.Uint8Array&&(a.MozBlobBuilder||a.WebKitBlobBuilder||a.BlobBuilder)))?e:f)}var c=a.screen,g=c.width||0,c=c.height||0,n=a.devicePixelRatio||1,p=(k.cookie.match(/(^|;\s+)remixmdevice=([^;]+)/)||[])[2]||"",h=p.split("/");p&&g==h[0]&&c==h[1]&&7==h[3].length||(g=[g,c,n,l()].join("/"),k.cookie="remixmdevice=; expires="+(new Date(0)).toUTCString()+"; path=/",k.cookie="remixmdevice="+g+"; expires="+(new Date((new Date).getTime()+7776E6)).toUTCString()+"; path=/; domain=.vk.com",location.replace(location.toString()))})(document,window,"undefined","!","-");(function(a,d){var c=a.hash||"",b=c.substr(2);"#/"==c.substr(0,2)&&!d&&(b.match(/^\/*(away|login)(\.php)?([^a-z0-9\.]|$)/)&&(b=""),a.replace(a.protocol+"//"+a.host+"/"+b))})(location);
//-->
</script>
<link type="text/css" rel="stylesheet" href="/css/s_c.css?89"></link>
<link type="text/css" rel="stylesheet" media="only screen" href="/css/s_gyz.css?92"></link>
<link rel="shortcut icon" href="/images/faviconnew.ico"></link>
</head>
<body id="vk" class="_hover">
<div id="vk_utils"></div>
<div id="vk_head" class="mhead">
<div class="hb_wrap"><div class="hb_btn"> </div></div>
</div>
<div id="vk_wrap">
<div id="l"></div>
<div id="m"><div id="mhead" class="mhead"><a href="/" accesskey="*" class="hb_wrap mhb_home mhb_vkhome">
<div class="hb_btn mhi_home mhi_vkhome"> </div>
</a>
<a href="/login?to=aWQxMjM0NTY-" class="hb_wrap mhb_notify" accesskey="#">
<div class="hb_btn">
<em class="mh_btn_label">войти</em>
</div>
</a>
<div class="hb_wrap mhb_back"><h1 class="hb_btn mh_header">Рдуард</h1></div></div>
<div id="mcont" class="mcont"><div class="pcont fit_box">
<div class="owner_panel profile_panel">
<a href="/photo123456_309704599?rev=1&from=profile"><img src="http://cs408228.vk.me/v408228456/54e7/86xOLDlhEo0.jpg" class="op_fimg" alt="Рдуард Болдышев" /></a>
<div class="op_fcont">
<h2 class="op_header">Рдуард Болдышев</h2>
<div class="pp_last_activity">заходил 37 минут назад</div>
<div class="pp_status">Daft Punk – The Son Of Flynn (Moby Remix)</div>
<div class="pp_info">Санкт-Петербург</div>
</div>
<div class="op_block"><a class="wide_link pp_auth_link" href="/login?to=d3JpdGUxMjM0NTY-">Чтобы отправить сообщение <span class="pp_auth_link_a">Рдуарду</span>, Вам необходимо <b>войти</b>.</a></div>
</div>
<div class="ipanel">
<div class="profile_info"><h4 class="slim_header">Р?нформация</h4><div class="profile_info_cont"><div><dl class="pinfo_row _pinfo"><dt>День рождения:</dt><dd>20 мая</dd></dl><dl class="pinfo_row _pinfo"><dt>Семейное положение:</dt><dd>РЅРµ женат</dd></dl><dl class="pinfo_row"><dt>Р’РЈР—:</dt><dd>РЎРџР±Р“РРЈ (ранее Р¤Р?РќРРљ, Р?РќР–РРљРћРќ, СПбГУСР)</dd></dl></div><div class="pinfo_row"><a class="wide_link al_pinfo" href="/id123456?act=info">Полная информация В»</a></div></div></div><a name="menu"></a><div class="profile_info"><h4 class="slim_header">Другое</h4><div class="profile_info_cont profile_info_custom"><ul class="profile_menu">
<li><a href="/albums123456" class="pm_item">Фотографии <em class="pm_counter">943</em></a></li><li><a href="/id123456?act=fans" class="pm_item">Подписчики <em class="pm_counter">81<span class="num_delim"> </span>668</em></a></li><li><a href="/videos123456" class="pm_item">Видеозаписи <em class="pm_counter">252</em></a></li><li><a href="/id123456?menu_opened#menu" class="pm_item" onclick="this.parentNode.parentNode.nextSibling.style.display='block';this.parentNode.style.display='none';return false;">Ещё..</a></li>
</ul><ul class="profile_menu" style="display:none">
<li><a href="/id123456?act=idols" class="pm_item">Р?нтересные страницы <em class="pm_counter">87</em></a></li><li><a name="actions"></a><div class="profile_info"><h4 class="slim_header">Действия</h4><div class="profile_info_cont profile_info_custom"><ul class="context_menu">
<li><a href="/id123456?search=1" class="cm_item"><span class="cm_label">Поиск по записям</span></a></li>
</ul></div></div></li>
</ul></div></div>
<a name="wall"></a>
<h4 class="slim_header">231 сообщение</h4>
<a name="posts"></a>
<div class="wall_posts upanel bl_cont">
<div class="post_item">
<a name="post123456_4677" class="anchor"></a>
<a href="/id123456"><img src="http://cs408228.vk.me/v408228456/54e7/86xOLDlhEo0.jpg" class="pi_img" /></a>
<div class="pi_cont">
<div class="pi_head">
<div><a class="pi_author" href="/id123456">Рдуард Болдышев</a> </div>
</div>
<div class="pi_body">
<div class="pi_text">Джобса выперли РІ СЃРІРѕРµ время РёР· Apple СЃ подачи миноритариев (что РІ итоге привело компанию Рє предбанкротному состоянию РІ 1997), Цукерберг заигрался СЃ опционами (владеет СѓР¶Рµ только четвертью Facebook).. Гейтс - только 7% Microsoft.. Фонд-прокладка United Capital Partners аффилированный СЃ силовиками РІ этом РіРѕРґСѓ выкупил блокирующий пакет Сѓ первоначальных партнеров Дурова Р° Сѓ самого Дурова только 12% Вконтакте. <br/>Всех этих людей объединяет РѕРґРЅРѕ - РЅР° этапе роста РѕС‚ малого размера Рє среднему - РёС… компаниям остро РЅРµ хватало оборотного капитала. <br/>Р?Р· всех этих фамилий - только Сѓ Цукерберга хватило СѓРјР° Рё настойчивости РїСЂРё владении 1/4 компании прописать себе контрольный пакет РёР· 57% голосов РЅР° совете директоров. Чтобы решения принимали РЅРµ деньги Р° РјРѕР·РіРё.</div>
<div class="pi_medias"><div class="medias_row">
<span class="mr_label medias_audio"> <i class="i_icon i_audio"></i><span class="medias_audio_artist">РљРёРЅРѕ </span> – Дальше действовать будем РјС‹ (OST Р?гла Remix 2010)<span class="medias_audio_dur">(4:09)</span></span>
</div><div class="medias_row"><a class="mr_label medias_link" href="/away?to=http%3A%2F%2Fwww.forbes.ru%2Fsobytiya%2Fbiznes%2F245653-konflikt-vkontakte-ucp-dopuskaet-otstavku-durova" target="_blank"> <i class="i_icon"></i> <span class="medias_link_label">Ссылка</span> <span class="medias_link_labeled">www.forbes.ru</span></a></div></div>
<div class="pi_info"><a class="pi_date" href="/wall123456_4677">19 РѕРєС‚ РІ 23:27</a><a class="item_like _i" href="/like?act=members&object=wall123456_4677&from=id123456"><i class="i_like"></i><b class="v_like">326</b></a></div>
<div class="pi_links"><a class="pi_link" href="/like?act=publish&object=wall123456_4677&from=id123456">Ответить</a></div>
</div>
</div>
</div><div class="post_item">
<a name="post123456_4676" class="anchor"></a>
<a href="/id123456"><img src="http://cs408228.vk.me/v408228456/54e7/86xOLDlhEo0.jpg" class="pi_img" /></a>
<div class="pi_cont">
<div class="pi_head">
<div><a class="pi_author" href="/id123456">Рдуард Болдышев</a> </div>
</div>
<div class="pi_body">
<div class="pi_text">Журнал Esquire взял простого русского мужика из деревни Курской области и свозил его в штаты на 3 дня для фотосессии на свою обложку.</div>
<div class="pi_medias thumbs_list thumbs_list1"><div class="medias_thumbs"><a class="medias_thumb thumb_item" href="/video123456_166584247?list=a3b5ff3b432d5b4fa8&from=wall123456_4676"><img src="http://cs309330.vk.me/u3203678/video/s_ae5ea63d.jpg" class="ph_img" /><span class="mt_label mt_dur">19:59</span></a></div></div>
<div class="pi_info"><a class="pi_date" href="/wall123456_4676">19 РѕРєС‚ РІ 14:56</a><a class="item_like _i" href="/like?act=members&object=wall123456_4676&from=id123456"><i class="i_like"></i><b class="v_like">407</b></a></div>
<div class="pi_links"><a class="pi_link" href="/like?act=publish&object=wall123456_4676&from=id123456">Ответить</a></div>
</div>
</div>
</div><div class="post_item">
<a name="post123456_4675" class="anchor"></a>
<a href="/id123456"><img src="http://cs408228.vk.me/v408228456/54e7/86xOLDlhEo0.jpg" class="pi_img" /></a>
<div class="pi_cont">
<div class="pi_head">
<div><a class="pi_author" href="/id123456">Рдуард Болдышев</a> </div>
</div>
<div class="pi_body">
<div class="pi_text"><span>РћРґРЅРѕР№ танцевальной РіСЂСѓРїРїРµ РёР· моего детства сегодня исполнилось 13 лет. Организаторы РІСЃРµ те Р¶Рµ. Сколько раз СЏ СѓР¶Рµ это видел.<br/><br/>Люди добиваются успеха: налаживают бизнес, заводят семью, животных, получают хорошее место РЅР° работе или увлекаются каким-то РѕРґРЅРёРј С…РѕР±Р±Рё которое превращается РІ любимое дело..</span><a href="/wall123456_4675" class="pi_text_more" onclick="this.nextSibling.style.display='inline';this.style.display='none';return false;">Показать полностью..</a><span style="display:none"> <br/>Человек первое время рад этому успеху - первые РіРѕРґ-РґРІР°. Рто дело/работа/семья занимают Сѓ него РІСЃРµ СЃРІРѕР±РѕРґРЅРѕРµ время, превращается вообще РІ Р¶РёР·РЅСЊ как таковую Рё РѕРЅ СѓР¶Рµ упирается РІ количество часов РІ сутках - РЅРµ может расти дальше. Да Рё РЅРµ нет мотивации расти. <br/>Альтерэго РІСЃРµ устраивает, ведь РІСЃРµ РјС‹ внутри опасаемся изменений.<br/><br/>Рђ дальше РІСЃРµ - потолок. Р’СЃРµ время тратится РЅР° сохранение, развитие останавливается.<br/><br/>Р? РІРѕС‚, через лет 10 такая Р¶РёР·РЅСЊ выливается РІ большой РєСЂРёР·РёСЃ. РЈ мужчин это называется "РєСЂРёР·РёСЃ среднего возраста - подведение итогов половины прожитой Р¶РёР·РЅРё" (женщины переносят его легче если есть дети - радуются СѓР¶Рµ Р·Р° РёС… успехи). РњСѓР¶РёРєРё заводят молодых любовниц, покупают спортивные машины, играют РІ казино, Р° часто просто спиваются. Человек понимает что надо что-то менять РЅРѕ изменить себя РЅРµ хватает СЃРёР». Борьба идет СЃРѕ следствием Р° РЅРµ СЃ причиной.<br/><br/>Рђ вывод такой: РЅРµ надо бояться менять СЃРІРѕСЋ Р¶РёР·РЅСЊ, еще 2PAC РїСЂРѕ это зачитывал.</span></div>
<div class="pi_medias thumbs_list thumbs_list1"><div class="medias_thumbs"><a class="medias_thumb thumb_item al_photo" href="/photo123456_313064643?rev=1&post=123456_4675&from=profile"><img src="http://cs14110.vk.me/c7007/v7007456/d033/XUmcAxqg80Y.jpg" class="ph_img" data-id="123456_313064643" data-src_big="http://cs14110.vk.me/c7007/v7007456/d034/Z1IcGPZrQYc.jpg|604|453" /></a></div><div class="medias_row">
<span class="mr_label medias_audio"> <i class="i_icon i_audio"></i><span class="medias_audio_artist">2PAC</span> – Changes<span class="medias_audio_dur">(4:27)</span></span>
</div></div>
<div class="pi_info"><a class="pi_date" href="/wall123456_4675">12 РѕРєС‚ РІ 13:47</a><a class="item_like _i" href="/like?act=members&object=wall123456_4675&from=id123456"><i class="i_like"></i><b class="v_like">380</b></a></div>
<div class="pi_links"><a class="pi_link" href="/like?act=publish&object=wall123456_4675&from=id123456">Ответить</a></div>
</div>
</div>
</div><div class="post_item">
<a name="post123456_4672" class="anchor"></a>
<a href="/id123456"><img src="http://cs408228.vk.me/v408228456/54e7/86xOLDlhEo0.jpg" class="pi_img" /></a>
<div class="pi_cont">
<div class="pi_head">
<div><a class="pi_author" href="/id123456">Рдуард Болдышев</a> </div>
</div>
<div class="pi_body">
<div class="pi_text">... и такое бывает</div>
<div class="pi_medias"><div class="medias_row"><a class="mr_label medias_link" href="/away?to=http%3A%2F%2Flenta.ru%2Fnews%2F2013%2F09%2F26%2Fplane%2F" target="_blank"> <i class="i_icon"></i> <span class="medias_link_label">Ссылка</span> <span class="medias_link_labeled">lenta.ru</span></a></div></div>
<div class="pi_info"><a class="pi_date" href="/wall123456_4672">26 сен в 15:02</a><a class="item_like _i" href="/like?act=members&object=wall123456_4672&from=id123456"><i class="i_like"></i><b class="v_like">335</b></a></div>
<div class="pi_links"><a class="pi_link" href="/like?act=publish&object=wall123456_4672&from=id123456">Ответить</a></div>
</div>
</div>
</div><div class="post_item" data-copy="-54683761_2564">
<a name="post123456_4671" class="anchor"></a>
<a href="/id123456"><img src="http://cs408228.vk.me/v408228456/54e7/86xOLDlhEo0.jpg" class="pi_img" /></a>
<div class="pi_cont">
<div class="pi_head">
<div><a class="pi_author" href="/id123456">Рдуард Болдышев</a> </div>
</div>
<div class="pi_body">
<div class="pic_body_wrap">
<div class="pic_body">
<div class="pic_header">
<a href="/man_x"><img src="http://cs314526.vk.me/v314526076/d77/fIGuqn5Ry5M.jpg" class="pic_img" /></a>
<div class="pic_cont">
<div class="pic_from"><span></span><i class="i_copy"></i><a class="pi_author" href="/man_x">XXL - мужской журнал</a> </div>
<div class="pic_desc"><a class="pic_desc_a" href="/wall-54683761_2564">22 сен в 21:59</a></div>
</div>
</div>
</div>
<div class="pi_text">Как делают РґРѕСЂРѕРіРё РІ Нидерландах. Р? как делают РґРѕСЂРѕРіРё РІ Р РѕСЃСЃРёРё...<br/><br/><a href="/man_x?q=%23%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE">#видео@man_x</a></div>
<div class="pi_medias thumbs_list thumbs_list2"><div class="medias_thumbs"><a class="medias_thumb thumb_item" href="/video-54683761_166284255?list=52511549ecdc6978c1&from=wall123456_4671"><img src="http://cs514220.vk.me/u91252740/video/s_79d4457c.jpg" class="ph_img" /><span class="mt_label mt_dur">4:30</span></a><a class="medias_thumb thumb_item" href="/video-54683761_166284253?list=1ad7f10bfe8ba88e42&from=wall123456_4671"><img src="http://cs525407.vk.me/u5542709/video/s_0fed5530.jpg" class="ph_img" /><span class="mt_label mt_dur">0:53</span></a></div></div>
</div>
<div class="pi_info"><a class="pi_date" href="/wall123456_4671">22 сен в 22:43</a><a class="item_like _i" href="/like?act=members&object=wall123456_4671&from=id123456"><i class="i_like"></i><b class="v_like">337</b></a></div>
<div class="pi_links"><a class="pi_link" href="/like?act=publish&object=wall123456_4671&from=id123456">Ответить</a></div>
</div>
</div>
</div>
<div class="show_more_wrap"><a class="show_more" href="/id123456?offset=5&own=1#posts">Показать еще</a></div>
</div>
</div>
</div></div>
<div id="mfoot" class="mfoot"><div class="pfoot">
<ul id="footer_menu" class="footer_menu">
<li class="fm_row"><a class="fm_item" href="/">На главную</a></li>
<li class="fm_row"><a id="fv_link" class="fm_item fv_link" href="http://vk.com/id123456?_fm=profile">Полная версия</a></li>
</ul>
</div></div>
<img width="1" height="1" src="//counter.yadro.ru/hit?uhttp%3A%2F%2Fm.vk.com%2Fid123456;r;75961921" alt="" align="left" />
<img width="1" height="1" src="//b.scorecardresearch.com/p?c1=2&c2=13765216&c3=&c4=http%3A%2F%2Fm.vk.com%2Fid123456&c5=&c9=c15=&cv=2.0&cj=1&rn=75961921" alt="" align="left" /></div>
<div id="z"></div>
</div>
<div id="vk_bottom"></div>
<script type="text/javascript">
<!--
parent&&parent!=window&&(document.getElementsByTagName('body')[0].innerHTML='');
//-->
</script>
</body>
</html></pre>
|
то есть, с одной стороны, он код выдает, но не полный.
а может это именно вконтакте так блокирует?.. | |
|
|
|
|
|
|
|
для: gran-dia
(21.10.2013 в 18:36)
| | скорее всего остальное динамически через javascript подгружается. | |
|
|
|
|
|
|
|
для: psychomc
(21.10.2013 в 21:14)
| | а как вообще читать страницы вконтакте?
Я пересмотрел кучу сайтов и форумов, везде сталкивались с одной и той же проблемой, когда писали такую программу на php. Решения так и не нашел. Сам думал, но, видимо, опыта не хватает.
Давайте сделаем так, чтобы у нас на форуме было первым решение!
коллеги, неужели никто не знает в чем загвоздка?? О_о | |
|
|
|
|
|
|
|
для: gran-dia
(21.10.2013 в 23:54)
| | Знают, и вам уже об этом сказали - подгружается динамически, клиентским сценарием. | |
|
|
|
|
|
|
|
для: confirm
(22.10.2013 в 00:01)
| | понятно.
а как получить данные с этого сценария?
и как решить вопрос с абракадаброй, которую выдает скрипт вместо русского текста? где с кодировкой подправить? | |
|
|
|