Скрипт создания скриншотов - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Sat, 11 Jan 2025 05:02:08 +0300Теперь скрипт делает скрины не только главной страницы сайта.
https://visavi.net/topics/35798/609523
Скрипт создания скриншотов АлександрTue, 18 Dec 2012 17:28:05 +0400Сообщенияhttps://visavi.net/topics/35798/60952320. <strong>...RESIDENTOV...</strong>, утер? ок.
https://visavi.net/topics/35798/609496
Скрипт создания скриншотов ДмитрийTue, 18 Dec 2012 15:01:19 +0400Сообщенияhttps://visavi.net/topics/35798/60949619. <strong>dima.london</strong>, бери парня на работу. Утер <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile">
https://visavi.net/topics/35798/609417
Скрипт создания скриншотов МаксMon, 17 Dec 2012 23:22:21 +0400Сообщенияhttps://visavi.net/topics/35798/609417ок[b][/b]
https://visavi.net/topics/35798/609415
Скрипт создания скриншотов ДмитрийMon, 17 Dec 2012 23:09:13 +0400Сообщенияhttps://visavi.net/topics/35798/609415А причём тут СИ? Это разные языки программирования и сравнивать их глупо. В PHP, например, нет такой жёсткой типизации как в Си.<br>
<br>
P.S. код выше сработает не аналогично.<br>
Например:<br>
<pre class="prettyprint">$s = FALSE;
if(isset($s)) {
echo 'Условие выполнилось';
}</pre>
Условие выполнится.<br>
А если сделать так:<br>
<pre class="prettyprint">$s = FALSE;
if($s) {
echo 'Условие выполнилось';
}</pre>
Условие никогда не выполнится, а так как функция screen() возвращает либо FALSE, либо текст (что соответствует TRUE) это разные записи и результат их выполнения будет отличен.
https://visavi.net/topics/35798/609412
Скрипт создания скриншотов АлександрMon, 17 Dec 2012 22:46:23 +0400Сообщенияhttps://visavi.net/topics/35798/609412if ($s = screen($url)) {<br>
сработает аналогичному<br>
if(isset($s)) {<br>
<br>
и книжки тут не при чем. Читайте мануалы по СИ.
https://visavi.net/topics/35798/609411
Скрипт создания скриншотов ДмитрийMon, 17 Dec 2012 22:35:09 +0400Сообщенияhttps://visavi.net/topics/35798/609411Рассмотрев весь твой код я привёл его к нормальному виду:<br>
<pre class="prettyprint">function screen($url, $browser="ie9") {
$urlstr = 'http://ipinfo.info/netrenderer/index.php?url='.urlencode($url).'&browser='.$browser;
if(($content = file_get_contents($urlstr))) {
if(preg_match('/image\.php\?imgid=(.+?)"/i', $content, $h) != 0) {
return $h[1];
}
}
return false;
}</pre>
<br>
P.S. если уж делаешь присвоение в условии то его необходимо выделять в отдельные круглые скобки. Это я тебе про этот кусок кода:<br>
<pre class="prettyprint">if ($s = screen($url)) {
echo '<img src="http://renderer.geotek.de/image.php?imgid=' . $s . '" alt="">';
}</pre>
Условие должно быть таким:<br>
<pre class="prettyprint">if(($s = screen($url))) {</pre>
<br>
P.P.S. можешь сжечь книжки по которым тебя учили, "старший". Вместо того чтоб языком чесать не по делу пошёл бы и подучил PHP.<br>
Надеюсь я снизел твою самооценку и спустил тебя с небес <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> <br>
<br>
P.P.P.S. никого не хотел обидеть, просто надоело уже... всем peace, пишите скрипты, для вас 10 мин строчил пост Okula ;)
https://visavi.net/topics/35798/609402
Скрипт создания скриншотов АлександрMon, 17 Dec 2012 21:54:48 +0400Сообщенияhttps://visavi.net/topics/35798/6094029. <strong>dima.london</strong>, мда, тебе как кодеру должно быть стыдно за свои слова <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> <br>
Начну с самого начала:<br>
<pre class="prettyprint">function screen($url="", $browser="ie9") {
if (!empty($url)) {</pre>
<strong>Первое:</strong> Делать проверку на пустоту переменной внутри тела функции, делая этот аргумент функции по умолчанию пустым, - это быдлокод.<br>
Все проверки должны быть осуществлены до того как данные попали в функцию, дабы исключить пустой результат.<br>
Ты же умышленно разрешаешь использование пустого результата в переменной $url, тем самым провацируя скрипт на проверку.<br>
<strong>Второе:</strong> для чего был задан второй аргумент функции $browser, если он нигде не используется?<br>
Я так понимаю он должен вставляться в адрес URL browser='.$browser Сочтём это за твою невнимательность. Идём далее:<br>
<pre class="prettyprint">$content=file_get_contents('http://ipinfo.info/netrenderer/index.php?url=' .$url .'&browser=ie7');</pre>
Вот ещё кусок быдлокода <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> Вставляя адрес из переменной $url ты забываешь экранировать данные функцией urlencode(). Привет XSS уязвимости <img src="https://visavi.net/uploads/stickers/hello.gif" alt="hello"> :<br>
<strong>Третье:</strong> смотрим код дальше:<br>
<pre class="prettyprint">preg_match_all('/image.php\?imgid=(.*?)"/i', $content, $h);</pre>
Символ "." (точка) является спецсимволом регулятного выражения (совпадает с любым символом, кроме символа перевода строки) который тоже необходимо эранировать.<br>
Использование функции preg_match_all(), для получения единичного совпадения по шаблону регулярного выражения, в данном месте не уместно. Достаточно функции preg_match()<br>
Ну а проверка ниже меня просто убила:<br>
Твой код:<br>
<pre class="prettyprint">if (isset($h) && isset($h[1][0])) {</pre>
Если регулярка сработала и совпадение нашлось то все её параметры будут заполнены.<br>
Достаточно поместить функцию preg_match() в условие и она исключит все ненужные проверки.
https://visavi.net/topics/35798/609401
Скрипт создания скриншотов АлександрMon, 17 Dec 2012 21:54:17 +0400Сообщенияhttps://visavi.net/topics/35798/609401<a href="http://www.s-shot.ru/" target="_blank" rel="nofollow">http://www.s-shot.ru/</a>
https://visavi.net/topics/35798/609380
Скрипт создания скриншотов TRAILMon, 17 Dec 2012 20:22:34 +0400Сообщенияhttps://visavi.net/topics/35798/60938012. <strong>Sonikflame</strong>, ок, покупай то,что в 7 посте выложено бесплатно ))
https://visavi.net/topics/35798/609374
Скрипт создания скриншотов ДмитрийMon, 17 Dec 2012 19:51:09 +0400Сообщенияhttps://visavi.net/topics/35798/609374за 10р возьму.
https://visavi.net/topics/35798/609373
Скрипт создания скриншотов SonikflameMon, 17 Dec 2012 19:47:26 +0400Сообщенияhttps://visavi.net/topics/35798/609373Хороший ребята,из-за 50 рублей такую бессмысленную тему устроили
https://visavi.net/topics/35798/609372
Скрипт создания скриншотов GeorMon, 17 Dec 2012 19:46:54 +0400Сообщенияhttps://visavi.net/topics/35798/609372на венике за 30рублей продавали <img src="https://visavi.net/uploads/stickers/D.gif" alt="D">
https://visavi.net/topics/35798/609371
Скрипт создания скриншотов BenZzOReZMon, 17 Dec 2012 19:44:47 +0400Сообщенияhttps://visavi.net/topics/35798/609371// а вдруг пользователь не указал урл<br>
if (!empty($url)) {<br>
<br>
// а вдруг контент не отобрался<br>
if ($content) {<br>
<br>
// а вдруг массив $h не выбрался, а если выбралсяь, то в нем значения [1][0] нет<br>
if (isset($h) && isset($h[1][0])) {<br>
<br>
Слушай, чему тебя старшие учат, а не тому, чему Попов в своих уроках проповедует. Я бы этому Попову компилятор бы подчистил, чтобы не учил людей гoвнокодить.
https://visavi.net/topics/35798/609370
Скрипт создания скриншотов ДмитрийMon, 17 Dec 2012 19:44:01 +0400Сообщенияhttps://visavi.net/topics/35798/6093707. <strong>dima.london</strong>, значит у тебя кокашка код <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> <br>
Во-первых ошибка в регулярке, во-вторых лишних проверок дофига.<br>
Мой скрипт работает с API стороннего сервиса, да это так.<br>
Код для получении скриншота - одна строка.<br>
Всё остальное - это подготовка данных для стороннего API.<br>
Скриншоты сохраняются на том же сервере что и установлен скрипт.<br>
В отличии от твоего сервиса мой умеет делать полноразмерные скриншоты.<br>
P.S. цена и так смешная, менять её я не буду, если для кого-то это много - копите деньги со школьных завтраков <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile">
https://visavi.net/topics/35798/609350
Скрипт создания скриншотов АлександрMon, 17 Dec 2012 18:01:09 +0400Сообщенияhttps://visavi.net/topics/35798/609350