- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день!
Столкнулся с такой проблемой, необходимо поставить на страницу wordpess исполняемый код PHP. Код с сайта kovalut.
/*
PrintXML-Table ver 1.01 от 6 февраля 2012 года
Данный скрипт загружает курсы валют банков в формате XML с сайта
КОВ.РФ и выводит их в виде HTML таблицы. При этом загрузка новых
курсов с сайта КОВ.РФ происходит с использование кэширования.
Курсы загружаются с сайта, только если время модификации файла
kov_7701.xml на Вашем сервере устарело на определенную величину
($Reload_Period). В противном случае курсы извлекаются непосредственно
из файла kovt_7701.xml. Такое кэширование ускорит загрузку Вашей страницы.
Если периодическая загрузка XML файла 'kovt_7701.xml' с сайта KOVALUT.RU будет
осуществляться сторонними средствами, то функции:
Load_XML_From_Kov_RF()
Get_Kov_XML()
GetFileTime()
можно убрать из программы и еще нужно будет заменить строку:
$Kov_XML_Str = Get_Kov_XML();
на строку:
$Kov_XML_Str = file_get_contents('kovt_7701.xml');
*/
#Инициализируем глобальные переменные
#если Ваш сайт работает в кодировке UTF-8.
$Site_Encoding = 'UTF-8';
#если Ваш сайт работает в кодировке Windows-1251.
#$Site_Encoding = 'Windows-1251';
$Kov_City_Kod = '7701'; #Код города на сайте KOVALUT.RU
#$Reload_Period - время в секундах, по истечении которого необходимо
#обновлять файл kovt_7701.xml с курсами валют.
$Reload_Period = 300;
#$Work_Dir - Рабочий каталог. в нем сохраняются загруженный kovt_7701.xml
$Work_Dir = './';
Kov_Main();
#Kov_Main - отображает курсы валют на Вашем Сайте.
function Kov_Main()
{ #Загружаем XML с курсами валют в строкувую переменную $Kov_XML_Str
$Kov_XML_Str = Get_Kov_XML();
if ($Kov_XML_Str)
{ #Создаем XML элемент на основе загруженной выше строки
$XML = new SimpleXMLElement($Kov_XML_Str);
#Печатаем XML элемент, загруженный с сайта KOVALUT.RU
if ($XML)
{ #Print_Kov_XML($XML);
PrintTableInformer($XML);
}
}
}
# PrintTableInformerBody - Печатает тело таблицы с курсами обмена валют
#Аргуметы
#$XML = контейнер, в котором содержаться курсы валют банков для печати
function PrintTableInformerBody($XML)
{ global $StyleArr, $Site_Encoding;
for ($BI = 0; $BI < sizeof($XML->Bank); $BI++) # Перебираем все банки города
#для печати строк с курсами обмена валют
{ $BankName = ($Site_Encoding == 'UTF-8') ? $XML->Bank[$BI]->Name : mb_convert_encoding($XML->Bank[$BI]->Name, $Site_Encoding, "UTF-8");
$BGColor = ($BI % 2) ? '' : " background-color: {$StyleArr['grrow']};";
print "<tr align=\"center\" style = \"color: {$StyleArr['KursCol']};{$BGColor}\">\n";
if ($XML->Bank[$BI]->Url == '')
{ print "<td align=\"left\" style=\"padding-left: 5px; height: 30px;\">{$BankName}</td>\n";
}
else
{ print "<td align=\"left\" style=\"padding-left: 5px; height: 30px;\"><a style=\"color: {$StyleArr['BRefCol']};\" href=\"{$XML->Bank[$BI]->Url}\">{$BankName}</a></td>\n";
}
print "<td>{$XML->Bank[$BI]->USD->Buy}</td><td>{$XML->Bank[$BI]->USD->Sell}</td>\n";
print "<td>{$XML->Bank[$BI]->EUR->Buy}</td><td>{$XML->Bank[$BI]->EUR->Sell}</td>\n";
#Печатаем время обновления
print "<td style=\"padding-right: 5px; font-size: 12px;\">{$XML->Bank[$BI]->ChangeTime}</td>\n";
print "</tr>\n";
}
}
#PrintTableInformer печатает информер с табличкой в которой есть курсы
#всех банков города
function PrintTableInformer($XML)
{ global $StyleArr, $Kov_City_Kod, $Site_Encoding;
if ($Site_Encoding == 'UTF-8')
{ #Перекодировка не требуется. Просто загружаем переменные данными из XML
$CityName = $XML->City->Name;
$CityDate = $XML->City->Simple_Date;
}
else
{ #Перекодируем текстовые значения из кодировки UTF-8 в кодировку,
#установленную на сайте:
$CityName = mb_convert_encoding($XML->City->Name, $Site_Encoding, "UTF-8");
$CityDate = mb_convert_encoding($XML->City->Simple_Date, $Site_Encoding, "UTF-8");
}
print <<<END_OF_RECORD10
<div>
<table style="border-collapse: collapse;">
<tr>
<td align="center" colspan="6">
<h1 style="line-height: normal; font-style: italic; margin: 0px 0px 0px;">{$CityName}</h1>
{$CityDate}
</td>
</tr>
<tr> <td align="center" colspan="6">*</td> </tr>
<tr align="center" style="background-color: #e0e0e0;">
<th rowspan="2">Банк</th>
<th colspan="2">Доллар</th>
<th colspan="2">Евро</th>
<th rowspan="2">Время <br /> обновления</th>
</tr>
<tr align="center" style="background-color: #e0e0e0;">
<th>покупка*</th>
<th>продажа*</th>
<th>покупка*</th>
<th>продажа*</th>
</tr>
END_OF_RECORD10;
#Устанавливаем цвета в таблице для актуальных курсов
$StyleArr['grrow'] = '#c0c0c0'; #Цвет фона нечетного столбца
$StyleArr['b-k'] = '#e00000'; #Цвет цифр у лучших курсов
$StyleArr['BRefCol'] = '#00f'; #Цвет ссылки на банк
$StyleArr['KursCol'] = '#000'; #Цвет букв в строке с курсами банков
PrintTableInformerBody($XML->Actual_Rates); #Печатаем актуальные курсы
if (sizeof($XML->Not_Actual_Rates->Bank) >= 1)
{ #Если есть банки устаревшими курсами
print '<tr><th colspan="6">Ниже расположены устаревшие курсы валют:</th></tr>';
#Устанавливаем цвета в таблице для устаревших курсов
$StyleArr['grrow'] = '#e0e0e0'; #Цвет фона нечетного столбца
$StyleArr['b-k'] = '#808080'; #Цвет цифр у лучших курсов
$StyleArr['BRefCol'] = '#808080'; #Цвет ссылки на банк
$StyleArr['KursCol'] = '#808080'; #Цвет букв в строке с курсами банков
#Печатаем банки с неправильной датой курсов
PrintTableInformerBody($XML->Not_Actual_Rates);
}
print "<tr><td colspan=\"6\" align=\"center\">Источник курсов валют: <a style = \"color: #000000;\" href=\"http://kovalut.ru/index.php?kod={$Kov_City_Kod}\">KOVALUT.RU</a></td></tr>";
print "</table>\n</div>";
}
#Get_FileTime - возвращает время модификации файла если он существует.
#Возвращает 0, если файла не существует.
function GetFileTime($filename)
{ return ((file_exists($filename)) ? filemtime($filename) : 0);
}
#Get_Kov_XML - возвращает строку, содержащую XML c курсами валют
#Курсы загружаются из файла kovt_7701.xml, если время модификации
#файла еще не устарело. Если время модификации файла устарело -
#XML c курсами извлекается с сайта и сохраняется в файле kovt_7701.xml
function Get_Kov_XML()
{ global $Work_Dir, $Kov_City_Kod, $Reload_Period;
$buf =''; #В данную переменную будет загружен XML с курсами валют
#Создаем переменную с именем файла, в котором будет хранится
#XML с курсами валют:
$XML_File_Name = "{$Work_Dir}kovt_{$Kov_City_Kod}.xml";
#Проверяем, устарело ли время модификации файла kovt_7701.xml.
if (time() > (GetFileTime($XML_File_Name) + $Reload_Period))
{ #Сразу изменяем время модификации файла, чтобы минимизировать
#число лишних параллельных загрузок XML с сайта
touch($XML_File_Name);
#Загружаем XML c сайта KOVALUT.RU:
$buf = Load_XML_From_Kov_RF();
#Проверяем, удалось ли загрузить XML с сайта:
if ($buf)
{ #Загрузить с сайта получилось. Сохраняем XML с сайта в файл
file_put_contents($XML_File_Name, $buf);
}
}
if (!$buf)
{ #XML не был загружен с сайта (или не получилось или
#время модификации файла kovt_7701.xml еще не устарело).
#Загружаем XML с курсами валют из файла.
$buf = file_get_contents($XML_File_Name);
}
return($buf);
}
#Load_XML_From_Kov_RF - возвращает строку, содержащую XML c курсами
#валют с сайта KOVALUT.RU В случае, если правильные XML данные загрузить
#не удалось - возвращается пустая строка.
function Load_XML_From_Kov_RF()
{ global $Kov_City_Kod;
$Kov_Site = 'http://informer.kovalut.ru'; #Адрес сайта, с которого нужно загружать xml
#Расположение скрипта, возвращающего XML с курсами:
$Kov_XML_Loc = '/webmaster/xml-table.php?kod='.$Kov_City_Kod;
#$Kov_XML_Loc = '/webmaster/getxml.php?kod='.$Kov_City_Kod;
$buf =''; #В данную переменную будет считан XML с курсами валют
$OldErrorReportLevel = error_reporting(0);
#Открываем соединение с сайтом KOVALUT.RU по порту 80 и таймаутом 10 секунд.
$buf = file_get_contents($Kov_Site.$Kov_XML_Loc);
if (!$buf)
{ #Здесь можно обрабатывать ошибку, если не удалось установить
#соединение с сайтом KOVALUT.RU.
#echo "$errstr ($errno)<br />\n";
}
else
{ #$XMLTempl - шаблон правильных XML данных.
$XMLTempl = "\A<\\x3Fxml version=\"1.0\" encoding=\"utf-8\"\\x3F>\n<Exchange_Rates>.+?<\/Exchange_Rates>\Z";
#Проверяем, соответствуют ли загруженные данные - шаблону правильных XML данных
if (!preg_match("/$XMLTempl/is", $buf, $matches))
{ #Не удалось загрузить правильные XML данные. Возвращаем пустую строку.
$buf = '';
}
}
#Восстанавливаем изначальный уровень сообщений об ошибках
error_reporting($OldErrorReportLevel);
return($buf);
}
?>
Если код залить в отдельный файл PHP в корне сайта, то он отрабатывается отлично. Если я его добавляю на страницу вордпресс он не отрабатывается никак, пустая страница ни ошибок - ничего. Перепробовал уже кучу плагинов Inline PHP, PHP Code for posts, Exec-PHP.
Реакции ноль. Кто знает, подскажите в каком направлении копать...
курсы проще скриптом вставить js. благо есть такие ресурсы
курсы проще скриптом вставить js. благо есть такие ресурсы
Согласен, но заказчику нужен именно данные с ковалюта и хоть тресни. А он не лезет и все.
с ЦБ куда удачнее брать. и у них есть апи шикарнейшее.
и на оснвое его я делал js-скрипты простые, с текущими курсами.
пример могу показать, если интересно
что-то сильно корявый код. можно 10 строками всё сделать