Скрипт создания скриншотов
1.
Александр (17.12.2012 / 12:29)
Продам скрипт по созданию скриншотов с сайтов.
Промер скрипта тут
http://dzwap.ru/screen/
Стоимость скрипта 50руб.
P.S. скрипт не использует базы данных.
Добавлено через 00:39 сек.
Связь со мной по ICQ 8322665 или скаупу MrCasper309
2.
Дмитрий (17.12.2012 / 12:32)
вы совсем уже рехнулись, продавать скрипт из двух строк?
3.
Александр (17.12.2012 / 12:37)
Там так-то не 2-е строки
Кому нужно - тот заинтересуется.
4.
Shurups (17.12.2012 / 14:05)
хм на другом сайте продавали около сорока рублей)))
5.
Дмитрий (17.12.2012 / 14:26)
3.
Okula, если там больше двух строк, значит это какашка-код. Имхо.
6.
Shurups (17.12.2012 / 14:35)
5.
dima.london, сделай бесплатно или за 20р =) пригодится он, но 50р дорого
7.
Дмитрий (17.12.2012 / 15:21)
<?
$url = 'visavi.net';
function screen($url="", $browser="ie9") {
if (!empty($url)) {
$content=file_get_contents('http://ipinfo.info/netrenderer/index.php?url=' .$url .'&browser=ie7');
if ($content) {
preg_match_all('/image.php\?imgid=(.*?)"/i', $content, $h);
if (isset($h) && isset($h[1][0])) {
return $h[1][0];
}
}
}
return false;
}
if ($s = screen($url)) {
echo '<img src="http://renderer.geotek.de/image.php?imgid=' . $s . '" alt="">';
}
типо так. писал прямо в браузере.
8.
Александр (17.12.2012 / 18:01)
7.
dima.london, значит у тебя кокашка код
Во-первых ошибка в регулярке, во-вторых лишних проверок дофига.
Мой скрипт работает с API стороннего сервиса, да это так.
Код для получении скриншота - одна строка.
Всё остальное - это подготовка данных для стороннего API.
Скриншоты сохраняются на том же сервере что и установлен скрипт.
В отличии от твоего сервиса мой умеет делать полноразмерные скриншоты.
P.S. цена и так смешная, менять её я не буду, если для кого-то это много - копите деньги со школьных завтраков
9.
Дмитрий (17.12.2012 / 19:44)
// а вдруг пользователь не указал урл
if (!empty($url)) {
// а вдруг контент не отобрался
if ($content) {
// а вдруг массив $h не выбрался, а если выбралсяь, то в нем значения [1][0] нет
if (isset($h) && isset($h[1][0])) {
Слушай, чему тебя старшие учат, а не тому, чему Попов в своих уроках проповедует. Я бы этому Попову компилятор бы подчистил, чтобы не учил людей гoвнокодить.
10.
BenZzOReZ (17.12.2012 / 19:44)
на венике за 30рублей продавали
11.
Geor (17.12.2012 / 19:46)
Хороший ребята,из-за 50 рублей такую бессмысленную тему устроили
12.
Sonikflame (17.12.2012 / 19:47)
за 10р возьму.
13.
Дмитрий (17.12.2012 / 19:51)
12.
Sonikflame, ок, покупай то,что в 7 посте выложено бесплатно ))
14.
TRAIL (17.12.2012 / 20:22)
http://www.s-shot.ru/
15.
Александр (17.12.2012 / 21:54)
9.
dima.london, мда, тебе как кодеру должно быть стыдно за свои слова
Начну с самого начала:
function screen($url="", $browser="ie9") {
if (!empty($url)) {
Первое: Делать проверку на пустоту переменной внутри тела функции, делая этот аргумент функции по умолчанию пустым, - это быдлокод.
Все проверки должны быть осуществлены до того как данные попали в функцию, дабы исключить пустой результат.
Ты же умышленно разрешаешь использование пустого результата в переменной $url, тем самым провацируя скрипт на проверку.
Второе: для чего был задан второй аргумент функции $browser, если он нигде не используется?
Я так понимаю он должен вставляться в адрес URL browser='.$browser Сочтём это за твою невнимательность. Идём далее:
$content=file_get_contents('http://ipinfo.info/netrenderer/index.php?url=' .$url .'&browser=ie7');
Вот ещё кусок быдлокода
Вставляя адрес из переменной $url ты забываешь экранировать данные функцией urlencode(). Привет XSS уязвимости
:
Третье: смотрим код дальше:
preg_match_all('/image.php\?imgid=(.*?)"/i', $content, $h);
Символ "." (точка) является спецсимволом регулятного выражения (совпадает с любым символом, кроме символа перевода строки) который тоже необходимо эранировать.
Использование функции preg_match_all(), для получения единичного совпадения по шаблону регулярного выражения, в данном месте не уместно. Достаточно функции preg_match()
Ну а проверка ниже меня просто убила:
Твой код:
if (isset($h) && isset($h[1][0])) {
Если регулярка сработала и совпадение нашлось то все её параметры будут заполнены.
Достаточно поместить функцию preg_match() в условие и она исключит все ненужные проверки.
16.
Александр (17.12.2012 / 21:54)
Рассмотрев весь твой код я привёл его к нормальному виду:
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;
}
P.S. если уж делаешь присвоение в условии то его необходимо выделять в отдельные круглые скобки. Это я тебе про этот кусок кода:
if ($s = screen($url)) {
echo '<img src="http://renderer.geotek.de/image.php?imgid=' . $s . '" alt="">';
}
Условие должно быть таким:
if(($s = screen($url))) {
P.P.S. можешь сжечь книжки по которым тебя учили, "старший". Вместо того чтоб языком чесать не по делу пошёл бы и подучил PHP.
Надеюсь я снизел твою самооценку и спустил тебя с небес
P.P.P.S. никого не хотел обидеть, просто надоело уже... всем peace, пишите скрипты, для вас 10 мин строчил пост Okula ;)
17.
Дмитрий (17.12.2012 / 22:35)
if ($s = screen($url)) {
сработает аналогичному
if(isset($s)) {
и книжки тут не при чем. Читайте мануалы по СИ.
18.
Александр (17.12.2012 / 22:46)
А причём тут СИ? Это разные языки программирования и сравнивать их глупо. В PHP, например, нет такой жёсткой типизации как в Си.
P.S. код выше сработает не аналогично.
Например:
$s = FALSE;
if(isset($s)) {
echo 'Условие выполнилось';
}
Условие выполнится.
А если сделать так:
$s = FALSE;
if($s) {
echo 'Условие выполнилось';
}
Условие никогда не выполнится, а так как функция screen() возвращает либо FALSE, либо текст (что соответствует TRUE) это разные записи и результат их выполнения будет отличен.
19.
Дмитрий (17.12.2012 / 23:09)
ок[b][/b]
20.
Макс (17.12.2012 / 23:22)
19.
dima.london, бери парня на работу. Утер
21.
Дмитрий (18.12.2012 / 15:01)
20.
...RESIDENTOV..., утер? ок.
22.
Александр (18.12.2012 / 17:28)
Теперь скрипт делает скрины не только главной страницы сайта.
URL:
https://visavi.net/topics/35798