Скрипт создания скриншотов

1. Александр (17.12.2012 / 12:29)
Продам скрипт по созданию скриншотов с сайтов.
Промер скрипта тут http://dzwap.ru/screen/

Стоимость скрипта 50руб.

P.S. скрипт не использует базы данных.

Добавлено через 00:39 сек.
Связь со мной по ICQ 8322665 или скаупу MrCasper309

2. Дмитрий (17.12.2012 / 12:32)
вы совсем уже рехнулись, продавать скрипт из двух строк? ded

3. Александр (17.12.2012 / 12:37)
Там так-то не 2-е строки smile Кому нужно - тот заинтересуется.

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, значит у тебя кокашка код smile
Во-первых ошибка в регулярке, во-вторых лишних проверок дофига.
Мой скрипт работает с API стороннего сервиса, да это так.
Код для получении скриншота - одна строка.
Всё остальное - это подготовка данных для стороннего API.
Скриншоты сохраняются на том же сервере что и установлен скрипт.
В отличии от твоего сервиса мой умеет делать полноразмерные скриншоты.
P.S. цена и так смешная, менять её я не буду, если для кого-то это много - копите деньги со школьных завтраков smile

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рублей продавали D

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, мда, тебе как кодеру должно быть стыдно за свои слова smile
Начну с самого начала:
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');
Вот ещё кусок быдлокода smile Вставляя адрес из переменной $url ты забываешь экранировать данные функцией urlencode(). Привет XSS уязвимости hello :
Третье: смотрим код дальше:
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.
Надеюсь я снизел твою самооценку и спустил тебя с небес smile

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, бери парня на работу. Утер smile

21. Дмитрий (18.12.2012 / 15:01)
20. ...RESIDENTOV..., утер? ок.

22. Александр (18.12.2012 / 17:28)
Теперь скрипт делает скрины не только главной страницы сайта.

URL: https://visavi.net/topics/35798