@pavelzabavin

Как избавиться от ненужных символов на сайте, которые выводит php-скрипт?

Большой привет всем тем, кто неравнодушен к языку php!

Небольшая вводная. Решил заняться созданием интернет-станции для пользователей по определенным интересам, и уже сайт практически на html сделал, но с «выводом текущей песни на сайт» немного не получается.

Подробнее. IceCast-сервер формирует вывод песни в одну строку в файл назовём его current.xml. Далее по моей логике в работу включается php-файл, который должен обратиться к файлу current.xml, извлечь нужную строку, запомнить её и далее направить на html-сайт, на котором при помощи JS инициируется обращение к php-файлу. В результате мы получим вывод песни без перезагрузки страницы.

К трудностям. Картинки прилагаются.

Php-скрипт выглядит следующим образом:

<?php
$song=file_get_contents(‘ссылка на получение данных от XML’);
File_put_contents(‘./icemeta.txt’, $song);

$output = shell_exec(‘sed -n 2p ./icemeta.txt’);
Echo “$output”;
?>


XML-строка выглядит следующим образом: G-Eazy, Halsey - Him & I

На сайт информация направляется следующим образом:

<div class="meta-info">
<div class="label">Сейчас в эфире:</div>
<div id="artist">&nbsp; </div>
<div id="song">&nbsp; </div>
</div>


А по факту выглядит вот так: 5f7e270f3c5f7238087682.png

И ещё попался вот такой вывод песни: David Guetta feat. Sia &amp; Fetty Wap. Как убрать amp;?

Буду крайне признателен, если кто-нибудь поможет адаптировать код. Возможно, можно было бы поступить как-то проще, но пользовался только теми знаниями, которые у меня есть. Заранее спасибо!
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Чтобы избавиться от ненужных символов на сайте, надо избавиться от бессмысленных телодвижений в своём коде.

Я уж не знаю, какой клоун подсказал тебе делать shell_exec(‘sed -n 2p ./icemeta.txt’); (что само по себе уже дичь, независимо от решаемой задачи), но XML надо читать нормально, а не вырезать из него строчки через спину автогеном.

Вообще запомни простое правило - для каждого специального формата в РНР есть специальные средства работы с ним. И надо всегда использовать только их. Иначе твои "ненужные симолы" покажутся безобидным баловством на фоне других проблем.

В данном случае вместо всего этого винегрета надо использовать simplexml_load_file(), и дальше рабтать с полученным объектом.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
coderisimo
@coderisimo
echo htmlspecialchars_decode('David Guetta feat. Sia &amp; Fetty Wap') ;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы