Добрый день, есть функция, которая формирует нужный мне массив, сериализирует его и кладет в текстовый файл. Но сайт работает на UTF-8.
// Сама функция для формирования файла
function makePost() {
// Получим посты
global $post; $args = array( 'posts_per_page' => 3, 'category' => 3 ); $myposts = get_posts( $args );
// Составим нужный нам массив
$tofile = [];
$i_count = 0;
foreach ($myposts as $item) {
$tofile[$i_count]['title'] = $item->post_title;
$tofile[$i_count]['link'] = $item->guid;
$tofile[$i_count]['image'] = get_the_post_thumbnail_url( $item->ID );
$tofile[$i_count]['text'] = $item->post_excerpt;
$i_count++;
}
$tofile = serialize($tofile);
// Открыть текстовый файл и запишем туда сериализованный массив
$f = fopen("textfile.txt", "w");
file_put_contents($f, '');
// Записать строку текста
fwrite($f, $tofile);
// Закрыть текстовый файл
fclose($f);
}
Я тяну с другого сайта (сайт на кодировке 1251) этот текстовый файл и с помощью unserialize использую его как массив и вывожу массив...
<?php
function get_yposts() {
// Источник для парсера
$url ='http://site.info/textfile.txt';
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on errors
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 15s
$doc = curl_exec($ch);
$posts = unserialize($doc);
$posts = iconv('utf-8', 'windows-1251', $posts);
foreach ($posts as $post) {
echo "<div class='yt-post'>";
echo "<a class='yt-title' href='".$post['link']."'>";
echo "<img class='yt-post' src='".$post['image']."'>";
echo "</a>";
echo "<a class='yt-title' href='".$post['link']."'>".$post['title']."</a>";
echo "<p class='yt-text'>".$post['text']."</p>";
echo "</div>";
}
}
get_yposts();
?>
Крякозябры одни. Не пойму как использовать iconv в данном случае.