如何将PHP网页的内容保存到XML文件?

时间:2014-07-22 14:03:44

标签: php xml

我目前有代码为Oracle数组中的所有联系人生成XML代码。我试图在PHP中使用内置的XML方法,但它没有给我获得正确的模式所需的控制量。到目前为止,我一直在运行PHP文件,它将所有XML代码回显到网页,然后在页面中选择所有内容,将其粘贴到空白的记事本文件并将其保存为XML。这在目前是完美的,但基本上我希望能够运行PHP文件并最终得到一个带有动态命名约定的保存XML文件(writing_request_yyyymmddtttt.xml)。有没有办法轻松实现这一目标,使流程更加自动化?以下是代码片段:

echo    htmlspecialchars('<contact contactID="'.$row["UNIQUE ID"].'" action="AddOrModify">')."<br>".
    htmlspecialchars('<contactField name="LastName">'.$row["LAST NAME"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="FirstName">'.$row["FIRST NAME"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="MiddleName">'.$row["MIDDLE INITIAL"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="Country">'.$row["COUNTRY"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="Code">'.$row["CODE"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="CustomField" customName="'.$row["CUSTOM LABEL 1"].'">'.$row["CUSTOM VALUE 1"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="CustomField" customName="'.$row["CUSTOM LABEL 2"].'">'.$row["CUSTOM VALUE 2"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="CustomField" customName="'.$row["CUSTOM LABEL 3"].'">'.$row["CUSTOM VALUE 3"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="CustomField" customName="'.$row["CUSTOM LABEL 4"].'">'.$row["CUSTOM VALUE 4"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="CustomField" customName="'.$row["CUSTOM LABEL 5"].'">'.$row["CUSTOM VALUE 5"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="CustomField" customName="'.$row["CUSTOM LABEL 6"].'">'.$row["CUSTOM VALUE 6"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="CustomField" customName="'.$row["CUSTOM LABEL 7"].'">'.$row["CUSTOM VALUE 7"].'</contactField>')."<br>".
    htmlspecialchars('<contactField name="CustomField" customName="'.$row["CUSTOM LABEL 8"].'">'.$row["CUSTOM VALUE 8"].'</contactField>')."<br><br>".


    htmlspecialchars('<contactPointList>')."<br>".

    htmlspecialchars('<contactPoint type="Voice">')."<br>".
    htmlspecialchars('<contactPointField name="Label">'.$row["PHONE LABEL 1"].'</contactPointField>')."<br>".
    htmlspecialchars('<contactPointField name="CountryCode">'.$row["PHONE 1 COUNTRY CODE"].'</contactPointField>')."<br>".
    htmlspecialchars('<contactPointField name="Number">'.$row["PHONE 1"].'</contactPointField>')."<br>".
    htmlspecialchars('<contactPointField name="Extension">'.$row["PHONE EXTENSION 1"].'</contactPointField>')."<br>".
    htmlspecialchars('</contactPoint>')."<br><br>".

    htmlspecialchars('<contactPoint type="Voice">')."<br>".
    htmlspecialchars('<contactPointField name="Label">'.$row["PHONE 2 LABEL"].'</contactPointField>')."<br>".
    htmlspecialchars('<contactPointField name="CountryCode">'.$row["PHONE 2 COUNTRY CODE"].'</contactPointField>')."<br>".
    htmlspecialchars('<contactPointField name="Number">'.$row["PHONE 2"].'</contactPointField>')."<br>".
    htmlspecialchars('<contactPointField name="Extension">'.$row["PHONE EXTENSION 2"].'</contactPointField>')."<br>".
    htmlspecialchars('</contactPoint>')."<br><br>".

    htmlspecialchars('<contactPoint type="Email">')."<br>".
    htmlspecialchars('<contactPointField name="Label">'.$row["EMAIL LABEL 1"].'</contactPointField>')."<br>".
    htmlspecialchars('<contactPointField name="Address">'.$row["EMAIL 1"].'</contactPointField>')."<br>".
    htmlspecialchars('</contactPoint>')."<br><br>".
    htmlspecialchars('</contactPointList>')."<br><br>".
    htmlspecialchars('</contact>')."<br><br>";

这是在oci_fetch_array循环中运行,该循环也验证所有数据。有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

不是使用echo,而是将内容保存为变量,然后使用fopen()创建新文件,并使用fwrite()写入。

http://php.net/manual/en/function.fwrite.php http://php.net/manual/en/function.fopen.php

我认为您不应在代码中使用<br>,似乎您想要换行,在Windows上使用"\n""\r\n"PHP_EOL也是另一种选择。