首先让我说我不精通解析 XML 和/或编写 PHP。我一直在研究和拼凑我正在做的事情,但我被卡住了。
我正在尝试创建一个基本的 if/else 语句:如果节点不为空,则写入节点的内容。
这是我正在调用的 XML 片段:
<channel>
<item>
<title>This is a test</title>
<link />
<description>Test description</description>
<category>Test category</category>
<guid />
</item>
</channel>
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的 PHP:
<?php
$alerts = simplexml_load_file('example.xml');
$guid = $alerts->channel->item->guid;
if ($guid->count() == 0) {
print "// No alert";
}
else {
echo "<div class='emergency-alert'>".$guid."</div>";
}
?>
Run Code Online (Sandbox Code Playgroud)
显然,“guid”是一个空节点,但它正在返回:
<div class="emergency-alert"> </div>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?:(
PS,我试过 hasChildren() ,但也没有用。
在这里找到了一些关于此的问题但没有答案,所以希望有人能指出我正确的方向......
我正在尝试创建一个 csv 文件并将其保存到存储中,然后在 Laravel 中更新数据库。我可以成功创建文件,并且可以成功更新数据库......但我坚持将它们放在一起。在我的控制器中,我有这个用于创建文件(取自此处):
public function updatePaymentConfirm(Request $request) {
$users = User::all();
$fileName = 'test.csv';
$headers = array(
"Content-type" => "text/csv",
"Content-Disposition" => "attachment; filename=$fileName",
"Pragma" => "no-cache",
"Cache-Control" => "must-revalidate, post-check=0, pre-check=0",
"Expires" => "0"
);
$columns = array('First Name', 'Email');
$callback = function() use($users, $columns) {
$file = fopen('php://output', 'w');
fputcsv($file, $columns);
foreach ($users as $user) {
$row['First Name'] = $user->first_name;
$row['Email'] = $user->email;
fputcsv($file, array($row['First Name'], $row['Email']));
}
fclose($file);
};
// return response()->stream($callback, …Run Code Online (Sandbox Code Playgroud)