как выводить через JS?

12 3
C
На сайте с 15.07.2008
Offline
59
1341

Есть небольшой скрипт который тащит финансовую информацию с главной страницы рбк.ру

<?php

echo '<style>
.rate {
width: 200px;
font-family: Tahoma, Arial, Verdana;
font-size: 7px;
}
.red { color:red; }
.green { color:green; }
</style>';

$page = file_get_contents("http://www.rbc.ru/"); // контент берем с этой страницы

$b_tag = '<table width=100% class="rate">'; // вырезаем контент от сюда
$e_tag = '<TD><a href="http://pogoda.rbc.ru">'; // до сюда

$begin = strpos ($page, $b_tag);
$page = substr ($page, $begin);
$end = strpos ($page, $e_tag);
$page = substr ($page, 0, $end);

// контент вырезали, почистим код
$page = preg_replace('/(<i><\/i><span><A)(.*?)(>)/i', '', $page);
$page = preg_replace('/(<\/A><\/span>)||(width=100% )/i', '', $page);
$page = preg_replace('/(indexes red)/i', 'red', $page);
$page = preg_replace('/(indexes green)/i', 'green', $page);

// вывод результата:
echo $page.'<td align=center colspan=4></td></tr></table>';
?>

Подскажите, как выводить его через JS?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

нууу... это...

<?

Header("content-type: application/x-javascript");

echo "document.write(\"<style>.rate {width: 200px;font-family: Tahoma, Arial, Verdana; font-size: 7px; } .red { color:red; } .green { color:green; } </style>\")";

....

Дальше Ваш код...

....

// вывод результата:

echo "document.write(\"".$page."<td align=center colspan=4></td></tr></table>\")";

?>

А потов всё вызываете через:

<script language="Javascript" src="http://site.ru/myjs.php"></script>

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
C
На сайте с 15.07.2008
Offline
59
#2

Что-то не помогло, не выводиться результат.

Тестил на денвере: если поставить простой код скрипта, то все нормально, а через JS пустая страница.

Вот последовательность моих действий:

1) Простой код (страница + код скрипта в теле)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
</head>

<body>

<?php
echo '<style>
.rate {
width: 200px;
font-family: Tahoma, Arial, Verdana;
font-size: 7px;
}
.red { color:red; }
.green { color:green; }
</style>';

$page = file_get_contents("http://www.rbc.ru/"); // контент берем с этой страницы

$b_tag = '<table width=100% class="rate">'; // вырезаем контент от сюда
$e_tag = '<TD><a href="http://pogoda.rbc.ru">'; // до сюда

$begin = strpos ($page, $b_tag);
$page = substr ($page, $begin);
$end = strpos ($page, $e_tag);
$page = substr ($page, 0, $end);

// контент вырезали, почистим код
$page = preg_replace('/(<i><\/i><span><A)(.*?)(>)/i', '', $page);
$page = preg_replace('/(<\/A><\/span>)||(width=100% )/i', '', $page);
$page = preg_replace('/(indexes red)/i', 'red', $page);
$page = preg_replace('/(indexes green)/i', 'green', $page);

// вывод результата:
echo $page.'<td align=center colspan=4></td></tr></table>';
?>

</body>
</html>

результат на скрине

Как видно - все работает.

2) Через JS (вариант, из поста выше)

Код самой страницы выглядит так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
</head>

<body>

<script language="Javascript" src="http://prob/curs.php"></script>

</body>
</html>

Код файла со скриптом - так:

<?

Header("content-type: application/x-javascript");
echo "document.write(\"<style>.rate {width: 200px;font-family: Tahoma, Arial, Verdana; font-size: 7px; } .red { color:red; } .green { color:green; } </style>\")";
$page = file_get_contents("http://www.rbc.ru/"); // контент берем с этой страницы

$b_tag = '<table width=100% class="rate">'; // вырезаем контент от сюда
$e_tag = '<TD><a href="http://pogoda.rbc.ru">'; // до сюда

$begin = strpos ($page, $b_tag);
$page = substr ($page, $begin);
$end = strpos ($page, $e_tag);
$page = substr ($page, 0, $end);

// контент вырезали, почистим код
$page = preg_replace('/(<i><\/i><span><A)(.*?)(>)/i', '', $page);
$page = preg_replace('/(<\/A><\/span>)||(width=100% )/i', '', $page);
$page = preg_replace('/(indexes red)/i', 'red', $page);
$page = preg_replace('/(indexes green)/i', 'green', $page);

// вывод результата:
echo "document.write(\"".$page."<td align=center colspan=4></td></tr></table>\")";

?>

Результат пустая страница (исходный код этой страницы

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
</head>

<body>

<script language="Javascript" src="http://prob/curs.php"></script>

</body>
</html>
). Если попробывать обратиться к самому скрипту (http://prob/curs.php), то выдает следующее
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
</head>

<body>

<script language="Javascript" src="http://prob/curs.php"></script>

</body>
</html>

Т.е. результат работы, только в исходном коде.

Что делать, как поправить7

aleksey_php
На сайте с 17.03.2008
Offline
53
#3

Не понял прикола:

<script language="Javascript" src="http://prob/curs.php"></script>

Подсовываете браузеру php-код, в надежде что он будет выполнен браузером вместо яваскрипта? :)

Есть вариант осуществить это через AJAX. Если не хотите вникать в эту технологию, то Вам поможет JQuery. Здесь официальный сайт. Здесь разжёвано на русском и очень доступно.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4
aleksey_php:
Не понял прикола:
<script language="Javascript" src="http://prob/curs.php"></script>


Подсовываете браузеру php-код, в надежде что он будет выполнен браузером вместо яваскрипта? :)

для этого и пишется в ПХП:

Header("content-type: application/x-javascript");

с простыми примерами работает, сейчас посмотрю, чаво ему ещё нужно то.

C
На сайте с 15.07.2008
Offline
59
#5
aleksey_php:
Не понял прикола:
<script language="Javascript" src="http://prob/curs.php"></script>

Подсовываете браузеру php-код, в надежде что он будет выполнен браузером вместо яваскрипта? :)

Есть вариант осуществить это через AJAX. Если не хотите вникать в эту технологию, то Вам поможет JQuery. Здесь официальный сайт. Здесь разжёвано на русском и очень доступно.

Чего не понятно-то, хочу подключать информер на страницу. Надо имено через JS.

На многих сайтах встречаются такие информеры.

Кто знает как реализовать, предложенный выше способ не помогает или я делаю что-то не то ?

T.R.O.N
На сайте с 18.05.2004
Offline
314
#6
LEOnidUKG:
Header("content-type: application/x-javascript");

вполне достаточно content-type: plain/text

По вопросу:

создаеш файло 1.php

1. Подготавливаеш весь HTML код, убирая из него " и переносы строк.

2. В начало добавляеш document.write("

3. В конец добавляеш ");

Пусть это все хранится в переменной $page

4. Вставляеш Header("content-type: content-type: plain/text");

5. echo $page;

В HTML вставляеш <script language="Javascript" src="1.php"></script>

Все....

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#7
T.R.O.N:
вполне достаточно content-type:plain/text

да это мелочи... тут проблема короче в скобках... сейчас решаю :)

чёт лиса на меня ругается, на первой ' ковычке

Ошибка: unterminated string literal


echo "document.write('$page<td align=center colspan=4></td></tr></table>');\r\n";
T.R.O.N
На сайте с 18.05.2004
Offline
314
#8
LEOnidUKG:
на первой ' ковычке

уверены что в $page не встречается ' или \n \r \t?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#9
T.R.O.N:
уверены что в $page не встречается ' ?

там проблема в то, что данные из $page не в одну строку ))))

T.R.O.N
На сайте с 18.05.2004
Offline
314
#10
LEOnidUKG:
уверен, там только "

возможно глюки с табуляцией или переносами строк

T.R.O.N добавил 11.01.2009 в 18:19

LEOnidUKG:
в одну строку ))))

так я и написал в алгоритме именно развернуть в одну строку..... чуть выше в посте #7

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий