Вход

Просмотр полной версии : получить картинку для URL


malkoff
27.01.2012, 13:02
подскажите как можно реализовать автоматическое получение картинки при указании URL.
например, как это сделано на Facebook и Delicious

Постим ссылку и при этом нам выдается несколько картинок на выбор со страницы

9xakep
27.01.2012, 15:08
<img src='' id='img'>
<input type='text' value='' id='text'>
<input type='button' value='do' onclick="a()">
<script>
function a() {
var _src = document.getElementById('text').value
document.getElementById('img').src = _src
}
</script>

Это имели ввиду?
P.S. в текстовое поле вставьте ссылку картинки

inst
27.01.2012, 15:16
Необходимо парсить исходник страницы, на которую указывает ссылка. Найти все <img /> тэги и изъять из них адреса картинок. Но, к сожалению, без серверной части это невозможно.

malkoff
27.01.2012, 15:17
спасибо за ответ, но по нажатию на кнопку do ничего не происходит
если не сложно поясните ваш код

inst
27.01.2012, 15:19
спасибо за ответ, но по нажатию на кнопку do ничего не происходит
если не сложно поясните ваш код
Товарищ 9xakep предположил, что вы хотите встроить в свою страницу произвольную картинку, указав её непосредственный адрес.

malkoff
27.01.2012, 15:23
без php не обойтися как я понял

попробую что-то вроде


$url="http://yandex.ru";
$content=file_get_contents($url);
$count=preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $content, $matches);
echo $count."<br>";
echo $matches[0][0]."<br>";

не слишком ли грузить будет сервак?

Gozar
27.01.2012, 15:27
На серваке так делать не следует. Обойтись без php нужно. Твой сервер при любой нагрузке умрет.

inst
27.01.2012, 15:27
Да, вам нужно что-то в таком духе.

Ещё на ум пришла мысль использовать YQL, но суть та же, просто сервер будет не ваш, а Yahoo.

malkoff
27.01.2012, 15:27
как быть?

inst
27.01.2012, 15:34
В любом случае Facebook и пр. используют свои сервера хотя бы потому что они отдают не полную картинку, а лишь её миниатюру.

malkoff
27.01.2012, 15:40
мне тоже самое и надо сделать.
человек будет добавлять URL и при этом надо выводить несколько картинок с этого URL...
в конечном итоге одна из них(на выбор пользователя) сохраниться на серваке

malkoff
27.01.2012, 15:40
Gozar,
как же быть если не PHP?

Gozar
27.01.2012, 16:00
malkoff,
У тебя свой сервер или хостинг, vps тариф, нагрузка?

Gozar
27.01.2012, 16:02
А вообще не парься, сделай так как считаешь нужным. Когда упадет сервак поймешь как делать не стоило ;)

Что-то можно реализовать на среднем по цене хостинге, а для чего-то и трех серверов мало будет.

Любое подобное решение делается через тестирование, а не советы на форуме.

malkoff
27.01.2012, 16:12
если есть более оптимальные методы, то лучше их сразу использовать.
вопрос на форуме и задавался для того, чтобы не доводить до того пока упадет.
нужна идея как оптимальнее сделать, чем через такой вот парсинг

Gozar
27.01.2012, 16:19
malkoff,
ССылку на facebook где делается то, что ты говоришь в студию.

malkoff
27.01.2012, 16:22
просто берешь любую ссылку в интернете и добавляешь в пост. жмешь опубликовать.. при этом рядом с ссылкой появляется картинка(миниатюра)

Gozar
27.01.2012, 16:42
Грузить сервак будет однозначно. Превью со страницы так вообще ума не приложу как с помощью php сделать.

С помощью расширения для браузера подобное сделать довольно просто, по крайней мере мне, но я так понял такой вариант не прокатит.

Без разницы как ты будешь делать, т.к. если ты будешь делать это с помощью php, то такую же реализацию ты врядли получишь, а первый залетевший дятел разрушит цивилизацию(повесит сервер).

Ты форумом ошибся, спроси на phpclub. Можно ещё отявленных флешеров поспрашать, но насколько я знаю решение с flash работать будет не на всех сайтах.

С помощью js сделать однозначно нельзя.

inst
27.01.2012, 18:53
Да не, чуваку надо просто вытянуть адреса всех картинок из статьи на сайте, ссылку на который пользователь всунет в текстбокс. Это не превью всей страницы, только отдельных картинок миниатюры. Но на браузерном JS это действительно не сделаешь.

devote
27.01.2012, 19:08
Gozar,
Дауж, по твоим постам выше я понял что в PHP ты не бумбум.. Полный ноль. Все можно сделать и на PHP аккуратно и без повисаний. Если не в курсе есть такие свойства при запросах, timeout называется. Еще так же не забываем что запрос в сеть не грузит комп, а лишь останавливает работу текущего скрипта, это в том случае если делать запрос синхронно. Все делается нормально, и никто никогда не повесит то что не возможно повесить... Объясни мне пожалуйста, этож каким членом может повесить мой сервак сторонний сайт? тем что долго будет отдавать данные, или не отвечать? или еще чего?... для этого и существуют таймайту. Сброс запроса при достижении лимита ожидания.

Автору, спокойно может юзать PHP но не file_get_contents() используй расширение CURL там все можно настроить, и таймауты и заголовки получать/не получать и т.д.

Gozar
27.01.2012, 19:42
devote,
Не неси ересь. На обычном хостинге под небольшой нагрузкой провайдер тебе вилку в твою заумную задницу воткнет. У тебя только и будут одни обрывы.

Ты там что конопли обкурился?

Ну конечно если у тебя три человека на сайте, ты можешь хоть картины через php рисовать ... ты наверное так и делаешь.

trikadin
27.01.2012, 19:48
Gozar, какая нагрузка вообще? Получаешь код страницы, парсишь его на предмет пары картинок, берёшь их url и добавляешь к себе на страницу. Не копируя себе на сервер.

О да, серв по-любому упадёт от вытягивания одной страницы с другого домена.

Gozar
27.01.2012, 19:49
Человек сто зайдут одновременно, ткнут в скрипт и 95 из них не получит ничего. Ты о чём вообще говоришь? Твой пост похож на бред.

Gozar
27.01.2012, 19:50
trikadin,
И твой тоже бред.

trikadin
27.01.2012, 19:51
Человек сто зайдут одновременно, ткнут в скрипт и 95 из них не получит ничего. Ты о чём вообще говоришь? Твой пост похож на бред.
Аргументацию, примеры, пожалуйста. У меня в примерах - контакт и фейсбук, которые делают именно так, как я описал, и отлично работают. Ваши примеры в поддержку своей точки зрения?

Gozar
27.01.2012, 19:51
Ну да, какая нагрузка, гонять через сервер запросы в сеть.

devote
27.01.2012, 19:51
devote,
Не неси ересь. На обычном хостинге под небольшой нагрузкой провайдер тебе вилку в твою заумную задницу воткнет. У тебя только и будут одни обрывы.
:lol:
За нагрузку да, согласен... но не путай иную нагрузку и запрос данных с какого-то там сервера.. Запросы ничего не грузят. И не пытайся спорить. Я очень много лет потратил на то что бы выучить PHP и не надо мне говорить что зная PHP я не знаю о том что он там грузит и при каких обстоятельствах

.Ты там что конопли обкурился?
Не имею понятия ни про какую то там коноплю, а говорю то что годами проверено. И не на одном проекте.

Ну конечно если у тебя три человека на сайте, ты можешь хоть картины через php рисовать ... ты наверное так и делаешь.
Дауж, и как же тебе вдолбить то... Еще раз объясняю. Есть PHP сервер, все что он будет делать ГРУБО в данном случае, это выступать как прокси сервер, нагрузка будет почти таже что и при обычной отдаче данных сервером. При этом ЦП у сервака будет нагружен не больше чем при обычном его использовании для отдачи контента для сайта. Все что будет происходить, открываться дополнительное соединение с другим сервером.

Кури маны родной.

Gozar
27.01.2012, 19:54
Нука в студию оба выдали свои высоконагруженные проекты, реализованные на php.

Сервера facebook:
http://mainfun.ru/Images2/killout/serv2.jpg

trikadin
27.01.2012, 19:56
Нука в студию оба выдали свои высоконагруженные проекты, реализованные на php.
Я привёл примеры сайтов, работающих так.

Приводи свои)

trikadin
27.01.2012, 19:58
Сервера facebook:
Они такие лишь потому, что обслуживают миллионы запросов со всего света, а не потому, что реализуют такую технологию)

Gozar
27.01.2012, 19:58
trikadin,
Не надо быть гением, чтобы понять что 100 человек похоронят ваши разглагольствования навечно. devote, Иди дальше учи php, тоже мне заслуга. Сейчас любой дурак его знает.

Gozar
27.01.2012, 19:59
trikadin,
Когда ты приведешь пример своего высоконагруженного проекта, тогда и будет о чем говорить, а пока ты только догадки строишь.

devote
27.01.2012, 19:59
Нука в студию оба выдали свои высоконагруженные проекты, реализованные на php.
ну к примеру: http://carspie.com/ любое обращение к селектам, тырит данные об авто из других сайтов... Ищет тачки по VIN номерам, постоянно загружает новые объявы с других сайтов, например с этого http://vsbrothers.com/ и еще с пару десятков сайтов. тоесть CRON постоянно смотрит новые тачки на разных сайтах, скачивает о них данные, качает фотки, конвертит их в нужный формат, упаковывает архивы и т.д. Все данные формируются из разных источников. И сайт работает уже в таком режиме более двух лет... Что-то хостер не вопит... И ты не поверишь, даже у меня дома в локале ЦП 0% при запущенном этом сайте.

Gozar
27.01.2012, 20:02
ну к примеру: http://carspie.com/
Сколько человек в день на сайте?

devote
27.01.2012, 20:02
Не надо быть гением, чтобы понять что 100 человек похоронят ваши разглагольствования навечно. devote, Иди дальше учи php, тоже мне заслуга. Сейчас любой дурак его знает.
Если у тебя мозгов не хватает, то и одна команда в PHP может нагрузить ЦП на 100%. И таких говнокодеров полно, которые юзают к примеру всякие там file_get_contents() и т.д. Именно эти функции и грузят все это... Если писать все грамотно и на более низком уровне, ничего грузить не будет.

devote
27.01.2012, 20:04
Сколько человек в день на сайте?
человек по 1500 в день, хотя эту статистику я смотрел полгода назад, щас может быть иная цифра. Но количество людей если ты не понял не имеет значение для данного сайта... ибо он и без людей выполняет огромную работу автоматически... И ничего не падает.

Gozar
27.01.2012, 20:04
devote,
Спасибо за статистику.