@petr_reznikov

Как вывести в переменную данные из file_get_contents?

$data = file_get_contents($url, false, $context);
    print_r($data); //everything is well here
?>

Пытаюсь удалить теги и присвоить значение переменной для вывода

<?php preg_match("/<product_name>(.*)<\/product_name>/",$data,$product_name);
    $product_name = strip_tags($product_name[0]);
?>

<div>Product name: <?=$product_name?></div>

Ссылка возвращает данные в таком виде

<datastructure xmlns="////" xmlns:xs="http://urlblabla" xmlns:xsi="http://url">
    <product_name>Ноутбук </product_name>
    </datastructure>


Но в итоге $productname не выводится, в чем моя ошибка?
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ошибка в использовании регулярок вместо нормального разбора XML, например через SimpleXML.
В регулярке потенциальная ошибка в жадности. Если будет несколько записей product_name, то у вас выберутся все.
Ну и вы берёте $product_name[0], а там лежит полное совпадение с регуляркой. Найденная подстрока находится в $product_name[1].
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) при чем тут "вывести в переменную данные из file_get_contents"?
2) все выводится, ищите ошибку в другом месте
3) Если вы получаете xml, то зачем вам регулярки, есть средства, предназначенные для работы с xml
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы