获取 PHP 中已上传 XML 文件的完整内容
Get full content of uploaded XML file in PHP
我正在构建一个文件上传表单,用户可以在其中提交 XML 配置文件。我的目标是获取完整内容并将它们作为新的 post(自定义 post 类型)插入到 Wordpress 中。它在大多数情况下都有效,除了我在使用 file_get_contents()
时难以将 XML 标签与内容一起拉出。这会在使用时省略 XML 标签吗?如果是这样,我怎样才能得到文件的全部内容?
这是我的表单和处理程序代码...
function slicer_profile_form()
{
echo '<form action="' . esc_url( $_SERVER['REQUEST_URI'] ) . '" method="post" enctype="multipart/form-data">';
echo '<p>';
echo 'Profile<br />';
echo '<input type="file" name="slicer-profile" accept="text/xml">';
echo '</p>';
echo '<p><input type="submit" name="slicer-profile-submitted" value="Submit"/></p>';
echo '</form>';
}
function slicer_profile_submit()
{
// if the submit button is clicked, submit
if (isset($_POST['slicer-profile-submitted']))
{
$contents = file_get_contents( $_FILES['slicer-profile']['tmp_name'] );
var_dump($contents);
}
}
你可以用这个。
<?php
$xml=simplexml_load_file($_FILES['slicer-profile']['tmp_name']) or die("Error: Cannot create object");
print_r($xml);
?>
它将给出xml内容。
您的脚本可能不安全,您可能需要使用 php 命令完成正确的文件上传过程,例如:is_uploaded_file 和 move_uploaded_file
我总是检查列入黑名单的文件类型以及我收到的文件类型。您还需要确保您收到的内容也是安全的。
通过更改为:
echo '<pre>';
var_dump($contents);
echo '</pre>';
您当前的脚本可能会正确输出。
我正在构建一个文件上传表单,用户可以在其中提交 XML 配置文件。我的目标是获取完整内容并将它们作为新的 post(自定义 post 类型)插入到 Wordpress 中。它在大多数情况下都有效,除了我在使用 file_get_contents()
时难以将 XML 标签与内容一起拉出。这会在使用时省略 XML 标签吗?如果是这样,我怎样才能得到文件的全部内容?
这是我的表单和处理程序代码...
function slicer_profile_form()
{
echo '<form action="' . esc_url( $_SERVER['REQUEST_URI'] ) . '" method="post" enctype="multipart/form-data">';
echo '<p>';
echo 'Profile<br />';
echo '<input type="file" name="slicer-profile" accept="text/xml">';
echo '</p>';
echo '<p><input type="submit" name="slicer-profile-submitted" value="Submit"/></p>';
echo '</form>';
}
function slicer_profile_submit()
{
// if the submit button is clicked, submit
if (isset($_POST['slicer-profile-submitted']))
{
$contents = file_get_contents( $_FILES['slicer-profile']['tmp_name'] );
var_dump($contents);
}
}
你可以用这个。
<?php
$xml=simplexml_load_file($_FILES['slicer-profile']['tmp_name']) or die("Error: Cannot create object");
print_r($xml);
?>
它将给出xml内容。
您的脚本可能不安全,您可能需要使用 php 命令完成正确的文件上传过程,例如:is_uploaded_file 和 move_uploaded_file
我总是检查列入黑名单的文件类型以及我收到的文件类型。您还需要确保您收到的内容也是安全的。
通过更改为:
echo '<pre>';
var_dump($contents);
echo '</pre>';
您当前的脚本可能会正确输出。