使用 simplexml 修改从 rss 文件中提取的数据
Modify data extracted from rss file with simplexml
我正在使用 simplexml 从 rss 文件中提取数据。中的网址错误,我正在尝试更改它们。
为了能够使用这些数据,我需要删除这些网址中“base”一词之前的所有内容。
我可以通过以下方式做到这一点:
<?php echo strstr($rss->channel->item[0]->link, 'base') ?: $rss->channel->item[0]->link;?>
<?php echo strstr($rss->channel->item[1]->link, 'base') ?: $rss->channel->item[1]->link;?>
<?php echo strstr($rss->channel->item[2]->link, 'base') ?: $rss->channel->item[2]->link;?>
etc...
但它看起来很乱,我很确定有一种方法可以更有效地完成它,而不必一遍又一遍地调用 strstr 函数。
我尝试了很多东西,以下给了我最好的结果:
foreach($rss->channel->item->link as $b)
{
$new_url[] = strstr($b, 'base') ?: $b;
}
但是当我调用它时:
<?php echo $new_url[0];?>
<?php echo $new_url[1];?>
<?php echo $new_url[2];?>
它只适用于第一个实例。
有什么想法吗?还是我完全错了?
在上面的示例中,您正在迭代项目...在 foreach 中,您正在将其绑定在链接上
使用 foreach($rss->channel->item->link as $b)
将在 $b
中给出 link
这些项目有 link 属性,因此在这种情况下,您可以循环使用这些项目。
代码可以是
foreach($rss->channel->item as $b)
{
$new_url[] = strstr($b->link, 'base') ?: $b->link;
}
注意使用strstr
Returns the portion of string, or false if needle is not found.
如果 strstr returns 为假,则将 $b->link
添加到数组,该数组可能是 SimpleXMLElement
.
类型
在这种情况下,您可以将其转换为字符串 (string)$b->link
。
我正在使用 simplexml 从 rss 文件中提取数据。中的网址错误,我正在尝试更改它们。 为了能够使用这些数据,我需要删除这些网址中“base”一词之前的所有内容。
我可以通过以下方式做到这一点:
<?php echo strstr($rss->channel->item[0]->link, 'base') ?: $rss->channel->item[0]->link;?>
<?php echo strstr($rss->channel->item[1]->link, 'base') ?: $rss->channel->item[1]->link;?>
<?php echo strstr($rss->channel->item[2]->link, 'base') ?: $rss->channel->item[2]->link;?>
etc...
但它看起来很乱,我很确定有一种方法可以更有效地完成它,而不必一遍又一遍地调用 strstr 函数。
我尝试了很多东西,以下给了我最好的结果:
foreach($rss->channel->item->link as $b)
{
$new_url[] = strstr($b, 'base') ?: $b;
}
但是当我调用它时:
<?php echo $new_url[0];?>
<?php echo $new_url[1];?>
<?php echo $new_url[2];?>
它只适用于第一个实例。
有什么想法吗?还是我完全错了?
在上面的示例中,您正在迭代项目...在 foreach 中,您正在将其绑定在链接上
使用 foreach($rss->channel->item->link as $b)
将在 $b
这些项目有 link 属性,因此在这种情况下,您可以循环使用这些项目。
代码可以是
foreach($rss->channel->item as $b)
{
$new_url[] = strstr($b->link, 'base') ?: $b->link;
}
注意使用strstr
Returns the portion of string, or false if needle is not found.
如果 strstr returns 为假,则将 $b->link
添加到数组,该数组可能是 SimpleXMLElement
.
在这种情况下,您可以将其转换为字符串 (string)$b->link
。