使用变量从PHP中的XML获取数据
我今天开始把XML和PHP混合在一起,我在这方面做得很差,尽管它看起来非常简单 现在,我正在尝试做一些听起来很简单的事情,但我不明白它是如何工作的。我基本上是在为游戏创建一个假邮箱 因此,我将电子邮件存储在一个XML文件中,按类别(接收、发送等)分类。我根据邮件的类别找到了邮件列表,但我无法找到我点击邮件的部分,它显示了这封邮件的内容 以下是我的简化代码: XML: 但当然,我希望这部分是动态的,它不适用于:使用变量从PHP中的XML获取数据,php,xml,variables,simplexml,Php,Xml,Variables,Simplexml,我今天开始把XML和PHP混合在一起,我在这方面做得很差,尽管它看起来非常简单 现在,我正在尝试做一些听起来很简单的事情,但我不明白它是如何工作的。我基本上是在为游戏创建一个假邮箱 因此,我将电子邮件存储在一个XML文件中,按类别(接收、发送等)分类。我根据邮件的类别找到了邮件列表,但我无法找到我点击邮件的部分,它显示了这封邮件的内容 以下是我的简化代码: XML: 但当然,我希望这部分是动态的,它不适用于: echo $emails->$cat[$id]->content; 有
echo $emails->$cat[$id]->content;
有办法吗
谢谢大家!
卡米尔试试这个:
$a = new stdClass();
$b = new stdClass();
$b->field = 5;
$a->list = array(
1 => $b
);
print_r($a);
$param = 'list';
$id = 1;
print_r($a->list[1]->field); // outputs 5;
print_r($a->{$param}[$id]->field); // outputs 5;
关键是:
$a->{$param}[$id]->field // notice the curly brackets.
根据您的问题,您应该使用:
echo $emails->{$cat}[$id]->contenu;
作为一种良好的做法,您可能需要首先检查它是否存在:
if(isset($emails->{$cat}[$id])){
// echo it here, after you know it exists
}
您可以在上在线查看,请尝试以下操作:
$a = new stdClass();
$b = new stdClass();
$b->field = 5;
$a->list = array(
1 => $b
);
print_r($a);
$param = 'list';
$id = 1;
print_r($a->list[1]->field); // outputs 5;
print_r($a->{$param}[$id]->field); // outputs 5;
关键是:
$a->{$param}[$id]->field // notice the curly brackets.
根据您的问题,您应该使用:
echo $emails->{$cat}[$id]->contenu;
作为一种良好的做法,您可能需要首先检查它是否存在:
if(isset($emails->{$cat}[$id])){
// echo it here, after you know it exists
}
您可以在Hi Alex在线查看,谢谢您的快速回答!不幸的是,它仍然不起作用,我真的不明白<代码>如果(isset($emails->{$cat}[$id]){echo$emails->{$cat}[$id]->contenu;}否则echo“电子邮件不存在。”代码>…返回“电子邮件不存在”。如果我将
{$cat}[$id]
替换为received[1]
,我会收到我的电子邮件。我试图打印$cat.['.$id.]'
以仔细检查我是否愚蠢,它会按原样返回“received[1]”。我的php版本设置为5.6。有什么想法吗?好吧,我发现了一些。要工作,$id=(int)“1”代码>,与字符串“1”
一样,它不起作用。所以只要做$id=(int)$id你好,亚历克斯,谢谢你的快速回答!不幸的是,它仍然不起作用,我真的不明白<代码>如果(isset($emails->{$cat}[$id]){echo$emails->{$cat}[$id]->contenu;}否则echo“电子邮件不存在。”代码>…返回“电子邮件不存在”。如果我将{$cat}[$id]
替换为received[1]
,我会收到我的电子邮件。我试图打印$cat.['.$id.]'
以仔细检查我是否愚蠢,它会按原样返回“received[1]”。我的php版本设置为5.6。有什么想法吗?好吧,我发现了一些。要工作,$id=(int)“1”代码>,与字符串“1”
一样,它不起作用。所以只要做$id=(int)$id代码>