ТаблицейБлоками.Экспорт и импорт новостей с использованием PHP скриптов |
Последняя модификация: 04.07.2008 г
Страница загружена с адреса: http://webdesign.site3k.net/consulting/news.html
|
Наконец-то у меня дошли руки до скрипта импорта данных с сайта на сайт. Рассмотрим эту задачу на примере файла http://cjcity.ru/new_statyi.inc, который нужно включить в правую часть данной страницы (ты видишь эти ссылки справа). И так, файл лежит на одном сайте, а его, периодически меняющееся содержимое должно отражаться как часть страницы другого сайта. Как я уже говорил, PHP-функция fopen открывает файл или URL, после чего с его содержимым можно делать все, что угодно. Но есть и другие функции. Например, функция file читает весь файл в массив, каждый элемент которого соответствует строке прочитанного файла. Пройдя по массиву, можно обработать эти строки по своему усмотрению. Вот пример, взятый из официальной документации по PHP:
<?php
// получить web-страницу в виде массива и напечатать его
$fcontents = file ('http://cjcity.ru/new_statyi.inc');
while (list ($line_num, $line) = each ($fcontents)) {
echo "<b>Line $line_num:</b>; ", htmlspecialchars ($line), "<br>\n";
}
?>
Простейший случай импорта новостей с использованием PHP скриптаЕсли говорить о конкретном файле, лежащим по адресу http://cjcity.ru/new_statyi.inc и имеющем готовое HTML форматирование, то использование массивов и циклов только излишне усложняет процесс. Достаточно применить функцию readfile:
<?php
readfile ('http://cjcity.ru/new_statyi.inc');
?>
Все, проще некуда. Вот эти вот символы (<?php и ?>) начинают и заканчивают PHP-скрипт. Чтобы он работал, файл должен иметь расширение php. Для файлов с расширением htm, shtm, html и shtml (или какое еще может прийти в голову?), требуется чтобы они были зарегистрированы, либо как PHP-скрипты (но это извращение), либо как SSI-файлы (см. То есть, в общем случае, для php-файлов, в том месте, куда требуется воткнуть чужой файл, вставляется скрипт:
<?php
readfile ('http://cjcity.ru/new_statyi.inc');
?>
А для других файлов (html, shtml и т. д.), этот скрипт сохраняется отдельно, например в корень сайта, в файл с именем import.php. В саму страницу, вместо него вставляется SSI-директива <!--#include virtual="/import.php" --> вызывающая закрепленный за такого типа файлами обработчик и вставляющая на свое место код, полученный в результате обработки. Импорт новостей с извращениемНе знаю, зачем тебе нужно иметь кнопки для создания кода, который люди будут копировать в свои страницы, по-моему, каждый сам создаст такой код, какой захочет, но, поскольку ты об этом просишь, а для меня – это только разминка для мозгов (надеюсь избежать маразма в старости), то, пожалуйста: Код включения SSI-директивой должен иметь следующий вид: <div class=cjcity> <!-- создаем именованный блок, для того чтобы иметь возможность задавать ему оформление отличное от остальной страницы --> <!--#include virtual="/import.php" --> <!-- включаем в этот блок наш PHP-скрипт (фактически, включаем импортируемый файл) --> </div> <!-- закрываем блок --> Теперь, при желании, мы можем оформить содержимое блока каким-то особым образом с помощью
<style type="text/css"><!--
.cjcity P {font-size: 12pt; color: Navy}
/* задаем оформление абзаца внутри элемента класса cjcity */
.cjcity P A {font-size: 12pt}
/* и оформление ссылок внутри абзаца,
находящегося внутри элемента класса cjcity */
--></style>
Можно перенести это оформление во включаемый CSS-файл, оставив в нем только такие строки:
.cjcity P {font-size: 12pt; color: Navy}
.cjcity P A {font-size: 12pt}
Остается не выясненным, как позволить посетителю страницы произвольно менять размер и цвет шрифта, перед копированием? Тут нужно использовать JavaScript и свойство innerHTML. Так же, свойства шрифта на твоей странице придется поместить в именованные контейнеры, чтобы иметь возможность их менять (можно было бы сделать все на PHP, но это приводит к перезагрузке страницы, а зачем?). Таким образом, мы получаем стили
.cjcity P {font-size: <span id=cjcity1>12</span>pt;
color: <span id=cjcity2>Navy</span>}
.cjcity P A {font-size: <span id=cjcity3>12</span>pt}
элементы управления <input id="edit1" type="text" value=12 size="2"> <input id="edit2" type="text" value=black size="20"> <a href="javascript:edit();">Показать</a> и управляющую функцию:
<SCRIPT LANGUAGE="JavaScript"><!--
function edit()
{
a1=document.getElementById('edit1');
b1=document.getElementById('cjcity1');
b1.innerHTML=a1.value;
a2=document.getElementById('edit2');
b2=document.getElementById('cjcity2');
b2.innerHTML=a2.value;
b3=document.getElementById('cjcity3');
b3.innerHTML=a1.value;
}
//--></SCRIPT>
В общем, с твоими извращениями пришлось пройтись по всем языкам веб-програмирования. Ну, а теперь, когда ты освоил HTML, CSS, SSI JavaScript и PHP ☺ и можешь сам написать нужный тебе код, я, так уж и быть, приведу его в полном объеме и правильной последовательности. Можешь копировать его в свою страницу, и он будет работать (по крайней мере, у меня работает именно скопированный отсюда код).
Надеюсь, ты доволен результатом. Будет досадно, если нет. Так как со всеми объяснениями-толкованиями, у меня на это ушло несколько часов (а без извращений и толкований потребовалась бы одна минута – обычно сделать самому намного проще, чем разъяснить). Если что-то не так, пиши в комментариях. |
Quantum Leap Pianos - 263 гигабайтный ромплер фортепиано [ 27.08.2008 ]
Простые самодельные контроллеры Machinecollective
Релиз Livid Looper
Новости о выходе драм-машины LinnDrum II
Korg nanoSeries: nanoKEY, nanoKONTROL и nanoPAD
Fruity Loops Studio 8. Сочиняем треки
Работа со звуком на платформе Макинтош (Mac OS X)
Как побороть страх пения перед публикой
Типы микрофонов
Программы для музыки
Как не ошибиться при покупке пианино
Надо ли ребенка учить музыке?
Уличные музыканты
Музыкальные форматы MPX4 и MT9 как альтернатива MP3
Цифровые ди-джей контроллеры: Hybrid Numark Turntable и Stanton Sans Vinyl |
< Предыдущая (FTP клиент) Экспорт и импорт Следующая (php chmod)>
