Помощь - Поиск - Пользователи - Календарь
Полная версия: Вставка результата работы PHP-скрипта в страницу с помощью javascript
Форум на все случаи жизни > Программирование, скрипты, графика, WEB-строительство > WEB дизайн и прикладное программирование
Igrok
имеется бесплатный хостинг без поддержки пхп. на другом сайте лежит пхп-скрипт, формирующий новости по определенной тематике.

подскажите, как с помощью javascript вставить в страничку на бесплатном сервере результат работы этого скрипта?

поменять хостинг прошу не предлагать.
The Undertaker
никак. ява скрипты работают у клиента на компе, а не на уровне сервера.
Albu
В данном случае оптимальным будет использование фреймов
Igrok
The Undertaker
Я думаю, насчет никак вы не правы.
В хтмл-страничку можно вызвать любой джава-скрипт, находящийся на другом сервере.
Простейший пример - джава-скрипт с методом document.write(), позволяющий вставить в хтмл-страницу все, что находится внутри скобок.
Скорее всего, в джаваскрипт есть что-то наподобие и для того, чтобы вставить содержимое файла, подставив его адрес в интернете.

Albu
Использование фреймов исключается.


Может у кого-то будут еще варианты?
Albu
Код
<script type="text/javascript" SRC="http://site.ru/script.js"></SCRIPT>
я так понял, тебе это надо
вместо http://site.ru/script.js вставляешь адрес скрипта
Но сам понимаешь, что индексации поисковиками текста выводимого таким методом не будет
Igrok
Albu
Да, таким образом джава-скрипт будет вставляться страницу.
Но мне нужно содержимое (код) самого файла script.js, которое позволяло бы вставить в страницу текст из файла по его адресу в интернет, т.е. читающего в себя содержимое файла.

Например, код script.js для вставки в страницу текста "Привет!" будет следующим:

Код
document.write('Привет!');



Моя задача другого рода.
К примеру, по адресу www.adres.ru/phpfile.php находится пхп-страничка.

Мне нужен код файла script.js, позволяющий прочитать содержимое странички по ее адресу.


У кого будут какие соображения???
VitS
Цитата(Igrok @ 14.09.2006 - 08:34) *
Моя задача другого рода.
К примеру, по адресу www.adres.ru/phpfile.php находится пхп-страничка.
Мне нужен код файла script.js, позволяющий прочитать содержимое странички по ее адресу.

Пишем нового робота для спама?
Напишите ява-машину на ПХП - и будет вам счастье... blink.gif
Igrok
Цитата(VitS @ 15.09.2006 - 19:59) *

Пишем нового робота для спама?
Напишите ява-машину на ПХП - и будет вам счастье... blink.gif


Зачем все усложнять?

У меня есть сайт на хостинге, не поддерживающем пхп. на нем есть ssi, но инклудить с внешних сайтов запрещено.
Я хочу вставлять в странички на этом сайте блок новостей.
У меня есть другой сайт с поддержкой пхп, на котором я написал и разместил пхп-скрипт, формирующий этот блок новостей.

Я так представляю, что единственный вариант взять этот пхп-файл на сайт без поддержки пхп - вставка его с помощью javascript. (т.к. google adsense преспокойно вставляется на странички с его помощью)

Так как же с помощью javascript мне вставить блок новостей?

Решение этого до сих пор не найдено (хотя я думаю что оно будет простейшим).

Если есть спецы - подскажите или посоветуйте где задать этот вопрос более квалифицированным специалистам.
Albu
Ну так если сайт с новостями твой и ты можешь управлять выводом, выводи контент в виде js скрипта

P.S. После предыдущего твоего поста я подумал, что тебе необходимо осуществить граббинг с чужого сайта

P.S.S. Возможен еще такой способ:
на сайте с новостями ставишь скрипт, который записывает контент в файл сайта на хостинге, не поддерживающем php, а потом уже из этого файла делаешь инклюд на нужную страницу
Этот метод более предпочтителен, так как текст новостей будет в коде страници => будет индексация новостей.
Igrok
Цитата(Albu @ 16.09.2006 - 08:53) *

Ну так если сайт с новостями твой и ты можешь управлять выводом, выводи контент в виде js скрипта


Сайт с пхп-файлом новостей мой. Я могу на нем разместить js скрипт и хочу потом его вставлять в страницы на хостинге без пхп.

Меня интересует код этого js скрипта, чтобы он позволял вставить содержимое пхп-файла с новостями.

Дело в том, что этот пхп-файл грабит новости с другого сайта, код непростой и я не уверен что смогу его реализовать на javascript, т.к. в основном программлю на пхп.

Писать напрямую в файл на хостинге без пхп я опасаюсь, кроме того не уверен что это разрешено хостером.
Albu
Ну тут особо ничего сложного нет

если в граббере вывод происходит одной переменной, то надо редактировать эту переменную:
Код
// закомментировать все одинеарные кавычки
$st=str_replace ("'", "\'", $st);
// заменить все переносы строк (если файл выводит контент в unix кодировке то вместо \r\n писать \n)
$st=str_replace("\r\n", "'\r\n+'", $st);
print "document.write('".$st."');"

если вывод происходит частями, то необходимо подобную замену производить перед выводом очередной части текста

потом на сайте вставляешь код
Код
<script type="text/javascript" SRC="http://site.ru/grabber.php"></script>

http://site.ru/grabber.php - адрес граббера
Igrok
Albu

Вот код пхп-файла:

Код

<!-- Nalog News-->
<?
$adr='http://www.r30.nalog.ru/index.php'; //адрес страницы с новостями
$begin_screen='font color="#CC0000">Новости сайта'; // начальная фраза таблицы с новостями
$end_screen='a href="map.php'; // последняя фраза таблицы
$before_data='#CC0000"> '; // перед датой
$post_data='</font></td'; // после даты
$before_newsid='.php?id='; // перед id новости
$post_newsid='&topic=www.r30'; // после id новости
$before_news='.nalog.ru">'; // перед текстом новости
$post_news='</td>'; // после текста новости
// начинаем обрабатывать страницу.
// Выясняем строки начала и конца таблицы с новостями.
// Затем, будем работать именно с этим блоком.
$screen=file($adr); // читаем страницу с новостями в переменную $screen
for ($i=1; $i<sizeof($screen); $i++) { // обрабатываем строки с первой по последнюю
if (strpos($screen[$i],$begin_screen)==false) { //находим начало таблицы с новостями
if (strpos($screen[$i],$end_screen)==false) { //находим ее конец
}
else {$m=$i; // $m - номер последней строки таблицы
}
}
else {$k=$i; // $k - номер первой строки таблицы
}
} // Получаем с $screen[$k] по $screen[$m] - нашу таблицу с новостями.
// Потом будем работать именно с ней, чтобы не было лишних совпадений, и
// быстро работала программа.
$data=array(); // массив дат
$newsid=array(); // массив id
$news=array(); // массив новостей
$chip=0; // контрольный переключатель
$iks=0; // счетчик дат
$zed=0; // счетчик id и новостей
for ($i=$k; $i<=$m; $i++) { //работаем с датами
//если нет даты в строке (если нет фразы, стоящей перед датами.)
if ($chip==0)
{
if (strpos($screen[$i],$before_data)!==false && strpos($screen[$i],$post_data)!==false)
{
$string_data=$screen[$i]; // сохраняем строку с датой в переменную
$string_data=substr($string_data,strpos($screen[$i],$before_data)+strlen($before_data));
$end_data=strpos($string_data,$post_data,0);
$data[$iks]=substr($string_data,0,$end_data);
$chip=1;
$iks++; // инкремент счетчика дат
};
};
if (strpos($screen[$i],$before_newsid)!==false && strpos($screen[$i],$post_newsid)!==false && strpos($screen[$i],$before_news)!==false && strpos($screen[$i],$post_news)!==false)
{
$string_newsid=$screen[$i]; // сохраняем строку с id в переменную
$string_newsid=substr($string_newsid,strpos($screen[$i],$before_newsid)+strlen($before_newsid));
$end_newsid=strpos($string_newsid,$post_newsid,0);
$newsid[$zed]=substr($string_newsid,0,$end_newsid);
$string_news=$screen[$i]; // сохраняем строку с новостью в переменную
$string_news=substr($string_news,strpos($screen[$i],$before_news)+strlen($before_news));
$end_news=strpos($string_news,$post_news,0);
$news[$zed]=substr($string_news,0,$end_news);
$zed++; // инкремент счетчика id и новостей
$chip=0;
};
};
// публикуем результаты:
?>
<table width=100% cellpadding=3 cellspacing=0 border=0>
<?
for ($i=0; $i<=8; $i++)
{
?>
<tr><td><div align="left"><font face="Arial, Helvetica, sans-serif">
<font size="-1"><b><? echo $data[$i]?></b>
<br></font>
<font size="-2"><a href="http://www.r30.nalog.ru/document.php?id=<? echo $newsid[$i]?>" target="_blank">
<? echo $news[$i]?>
<br></font></div></td></tr>
<?
};
?>
</table>
<!--/ Nalog News-->


что с ним надо сделать?
Albu
замени только нижнюю часть на следующее
Код
// публикуем результаты:
?>
document.write('<table width=100% cellpadding=3 cellspacing=0 border=0>'
<?
for ($i=0; $i<=8; $i++)
{
?>
+'<tr><td><div align="left"><font face="Arial, Helvetica, sans-serif">'
+'<font size="-1"><b><?
$st=str_replace ("'", "\'", $data[$i]);
$st=str_replace("\r\n", "'\r\n+'", $st);
echo $st;
?></b>'
+'<br></font>'
+'<font size="-2"><a href="http://www.r30.nalog.ru/document.php?id=<? echo $newsid[$i]?>" target="_blank">'
+'<?
$st=str_replace ("'", "\'", $news[$i]);
$st=str_replace("\r\n", "'\r\n+'", $st);
echo $st;
?>'
+'<br></font></div></td></tr>'
<?
};
?>
+'</table>');
Igrok
Albu

Спасибо, работает!
Albu
Если не секрет, а чем использование фрейма не подходит, ведь фреймом проще это реализовать?
Igrok
Цитата(Albu @ 16.09.2006 - 11:43) *

Если не секрет, а чем использование фрейма не подходит, ведь фреймом проще это реализовать?



А можно для примера вариант размещения с фреймом?
Я просто пробовал, у меня не получилось, думал может это тоже на хостинге запрещено.
А джаваскрипт точно работало.
Albu
работа фреймов никак от хостинга не может завистить

пример фрейма:
Код
<IFRAME SRC="http://bestfilez.net/" WIDTH=300 HEIGHT=70 SCROLLING="no" FRAMEBORDER=0 align=center>
</IFRAME>

думаю, пояснять атрибуты фремай не надо, и так все понятно

Для того, чтобы ссылка открывалась в родительском окне, а не во фрейме, следует в ссылку добавить target=_top
для открытия в новом окне target=_blank
Igrok
Albu

Интересно! Это будет поудобнее наверно, надо поэкспериментировать.

Спасибо за советы.
..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.

Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.

Warning: require_once(/var/www/bestfil1/public_html/setlinks_0d98c/slsimple.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/bestfil1/public_html/forums/lofiversion/index.php on line 355