相关疑难解决方法(0)

PHP数组到JSON数组使用json_encode();

我编写了一个使用内置json_encode();函数制作的数组.我需要它的阵列数组格式,如下所示:

[["Afghanistan",32,12],["Albania",32,12]]
Run Code Online (Sandbox Code Playgroud)

但是,它将返回:

["2":["Afghanistan",32,12],"4":["Albania",32,12]]
Run Code Online (Sandbox Code Playgroud)

如何在不使用任何正则表达式技巧的情况下删除这些行号?

php arrays json

66
推荐指数
3
解决办法
31万
查看次数

$ SimpleXML-> asXML()的格式输出;

标题基本概括了所有内容.

如果我有类似的东西(从PHP站点示例):

$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies></movies>
XML;

$sxe = new SimpleXMLElement($xmlstr);

$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');


echo("<pre>".htmlspecialchars($sxe->asXML())."</pre>");

die();
Run Code Online (Sandbox Code Playgroud)

我最终输出一个长字符串,如下所示:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary"><movie><title>PHP2: More Parser Stories</title><plot>This is all about the people who make it work.</plot><characters><character><name>Mr. Parser</name><actor>John Doe</actor></character></characters><rating type="stars">5</rating></movie></movies>
Run Code Online (Sandbox Code Playgroud)

这对于程序使用者来说很好,但是对于调试/人工任务,有没有人知道如何将它变成一个漂亮的缩进格式?

php xml formatting simplexml

36
推荐指数
3
解决办法
8万
查看次数

PHP JSON或Array to XML

什么是获取JSON或Array对象并将其转换为XML的最简单方法.也许我正在寻找所有错误的地方,但我找不到一个合适的答案让我顺利完成它.这是我必须以某种方式建立自己的东西吗?或者是否有类似json_encode/json_decode的东西将采用数组或json对象并将其作为xml对象弹出?

php xml arrays json

14
推荐指数
2
解决办法
7万
查看次数

在PHP中将关联数组转换为XML

我想知道在PHP(或一些广泛使用的PHP库)中是否存在能够将关联数组转换为XML文档的函数.

我搜索了很多,只能找到不输出有效XML的函数.我相信我正在测试它们的数组是正确构造的,因为它可以正确地用于使用json_encode生成JSON文档.但是,它相当大,它嵌套在四个级别,这可以解释为什么我迄今为止尝试过的函数都失败了.

最后,我将编写代码来自己生成XML,但肯定必须有更快的方法来实现这一点.

php xml json

10
推荐指数
2
解决办法
1万
查看次数

如何检查多维Twig数组的值?

要简单地检查数组是否包含某个值,我会这样做:

{% if myVar in someOtherArray|keys %}
...
{% endif %}
Run Code Online (Sandbox Code Playgroud)

但是,我的阵列是多维的.

$tasks = array(
    'someKey' => 'someValue',
    ...
    'tags' => array(
        '0' => array(
            'id'   => '20',
            'name' => 'someTag',
        ),
        '1' => array(
            'id'   => '30',
            'name' => 'someOtherTag',
        ),
    ),
);
Run Code Online (Sandbox Code Playgroud)

我想要的是能够检查是否$tasks['tags']有标签ID 20.我希望我不会混淆使用PHP数组格式.

arrays twig

10
推荐指数
1
解决办法
4691
查看次数

将数组保存为xml

array(
name => text,
surname => text,
country => text,
date => text
)
Run Code Online (Sandbox Code Playgroud)

1)如何将此数组保存为xml文件?

2)如何读取此文件作为数组?

php xml arrays

5
推荐指数
2
解决办法
1万
查看次数

PHP DOM:如何将元素移动到默认命名空间?

我尝试了什么,什么不起作用:

  • 输入:

    $d = new DOMDocument();
    $d->formatOutput = true;
    
    // Out of my control:
    $someEl = $d->createElementNS('http://example.com/a', 'a:some');
    
    // Under my control:
    $envelopeEl = $d->createElementNS('http://example.com/default',
                                      'envelope');
    $d->appendChild($envelopeEl);
    $envelopeEl->appendChild($someEl);
    
    echo $d->saveXML();
    
    $someEl->prefix = null;
    echo $d->saveXML();
    
    Run Code Online (Sandbox Code Playgroud)
  • 替换后输出无效XML:

    <?xml version="1.0"?>
    <envelope xmlns="http://example.com/default">
      <a:some xmlns:a="http://example.com/a"/>
    </envelope>
    <?xml version="1.0"?>
    <envelope xmlns="http://example.com/default">
      <:some xmlns:a="http://example.com/a" xmlns:="http://example.com/a"/>
    </envelope>
    
    Run Code Online (Sandbox Code Playgroud)

请注意,<a:some>可能有孩子.一个解决方案是创建一个新的<some>,和所有的孩子从复制<a:some><some>.这是要走的路吗?

php xml xml-namespaces domdocument

5
推荐指数
1
解决办法
1149
查看次数

将多维数组转换为XML

在您评论这可能是重复之前,请阅读下面的粗体线.这与SimpleXML无关.

让我首先展示如何布局XML.请忽略名称空间:

 <hot:SearchHotels>
     <hot:request>
        <hot1:Destination>?</hot1:Destination>
        <hot1:HotelCityName>?</hot1:HotelCityName>
        <hot1:HotelLocationName>?</hot1:HotelLocationName>
        <hot1:HotelName>?</hot1:HotelName>
        <hot1:CheckIn>?</hot1:CheckIn>
        <hot1:CheckOut>?</hot1:CheckOut>
        <hot1:RoomsInformation>
           <!--Zero or more repetitions:-->
           <hot1:RoomInfo>
              <hot1:AdultNum>?</hot1:AdultNum>
              <hot1:ChildNum>?</hot1:ChildNum>
              <!--Optional:-->
              <hot1:ChildAges>
                 <!--Zero or more repetitions:-->
                 <hot1:ChildAge age="?"/>
              </hot1:ChildAges>
           </hot1:RoomInfo>
        </hot1:RoomsInformation>
        <hot1:MaxPrice>?</hot1:MaxPrice>
        <hot1:StarLevel>?</hot1:StarLevel>
        <hot1:AvailableOnly>?</hot1:AvailableOnly>
        <hot1:PropertyType>?</hot1:PropertyType>
        <hot1:ExactDestination>?</hot1:ExactDestination>
     </hot:request>
  </hot:SearchHotels>
Run Code Online (Sandbox Code Playgroud)

在hot1下注意:RoomsInformation有RoomInfo.我应该能够发送多个RoomInfo节点.但我正在使用PHP类将数组转换为此对象以通过SOAP提交.

这是我的数组在转换为对象之前:

$param = array(
            "Destination" => $destcode,
            "HotelCityName" => $city,
            "HotelLocationName" => "",
            "HotelName" => "",
            "CheckIn" => date("Y-m-d", strtotime($checkin)),
            "CheckOut" => date("Y-m-d", strtotime($checkout)),
            "RoomsInformation" => array (
                "RoomInfo" => array(
                        "AdultNum" => 2,
                        "ChildNum" => 1,
                        "ChildAges" => array(
                            "ChildAge" => …
Run Code Online (Sandbox Code Playgroud)

php xml object

4
推荐指数
1
解决办法
2万
查看次数

使用php将数据存储到文本文件中?

我试图将数据存储在一个文本文件中,类似于使用php而不是存储到mysql数据库中的数组到文本文件中.

例如,这里是要存储在文本文件中的数据

name=>john
age=>25
location=>australia
Run Code Online (Sandbox Code Playgroud)

将它保存到文本文件之后,如何将内容输出并用php解析,因为php可以找到名称,年龄和位置并将其回显(比如解析数组)

我需要它将数据存储到文本文件中,以便可以轻松地从其他域访问,而无需位于同一个域,连接到数据库,从数据库获取数据.我正在寻找一个快速的解决方案.:)

我不确定这个功能应该考虑哪个方向,希望有人可以指出我.

php

2
推荐指数
1
解决办法
1万
查看次数

在Zend Framework 2应用程序中返回XML响应的正确方法是什么?

我正在开发一个小型ZF2应用程序,它为客户端提供了一些API端点.它通过JSON返回一些简单的数据.

它有一个FooController扩展BaseRestControllerAbstractRestfulController:

FooController extends BaseRestController
{
    // ....
    public function getList()
    {
        $data = array('foo' => 'bar');
        return $this->send($data);
    }
 }
Run Code Online (Sandbox Code Playgroud)

和:

BaseRestController extends AbstractRestfulController
{
    // ...
    public function send($data)
    {
        return new JsonModel($data);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想根据用户的选择通过XML返回相同的数据.我想我必须在我的send()方法中做这样的事情BaseRestController:

if ($format === 'json') {
    return new JsonModel($data);
} else {
    return new XmlModel($data);
}
Run Code Online (Sandbox Code Playgroud)

我查看了内置的JsonModel,它扩展Zend\View\Model\ViewModel并添加了serialize()将变量序列化为JSON的方法.

我想我必须写一个类似的XmlModel,但我无法弄清楚如何正确编写这个模型,以及告诉我的控制器这个新模型的正确方法是什么.

要实现这一目标需要哪些类/工厂/渲染器/策略?

我阅读了文档的创建和注册备用渲染和响应策略部分,但是所有现有解决方案都检查了Accept HTTP标头,我不需要与标头交互,客户端只需将所需格式作为路由参数传递到我的应用程序中,/rest/foo?format=json或者 …

xml api rest zend-framework2

2
推荐指数
1
解决办法
3843
查看次数

从Laravel模板生成xml文件

我有一个Laravel模板,我想根据它生成一个XML文件.

例如,结构具有名称,XPath和类型.所以XML应该如下所示:

<name>
</name>
<type>
</type>
<xpath>
</xpath>
Run Code Online (Sandbox Code Playgroud)

当然,我正在寻找能够处理关系的更复杂的东西.

那有什么工具吗?

我正在使用MySQL,所以也许有一个工具呢?或者也许是PHP脚本?

我已经尝试过搜索,我发现的所有工具都是从XSD生成HTML表单和从XSD生成通用XML的工具.

更新

表格及其列是:

  1. xml_document 带列的表: id
  2. general_information表列:id,xml_document_id,domain,start_url和'类别
  3. master_information表列:id,xml_document_id,container,和next_page
  4. master_attribute表列:id,master_information_id,name,xpath,和type
  5. details_attribute表列:id,xml_document_id,和type

您可能会注意到,之间的关系:

  1. xml_document和master_information是一对一的.
  2. xml_document和general_information是一对一的.
  3. xml_document和details_attribute是一对多的.
  4. master_information和master_attribute是一对多的

php xml mysql laravel laravel-4

2
推荐指数
1
解决办法
1万
查看次数

如何将多维 PHP 数组转换为 XML?

1.我能做什么

我知道如何将 XML 转换为多维 PHP 数组,我这样做:

$xml = file_get_contents('data.xml');
$data = json_decode(json_encode((array) simplexml_load_string($xml)),1);
Run Code Online (Sandbox Code Playgroud)

现在$data是我的 PHP 数组。

2.我应该做什么

但是如果我更改了该数组并想将其放回到文件中怎么办?我应该能够做相反的事情吧?但我不知道如何..

3.什么不能解决我的问题

这篇文章很接近,但没有以相同的顺序返回数据:How to conversion array to SimpleXML

它不应该变得如此困难,对吧?:将多维数组转换为 XML

php xml arrays type-conversion

2
推荐指数
1
解决办法
1699
查看次数

PHP 将数组转换为 XML

我有一个像这样的数组:

[0] => Array
        (
            [Project] => Array
                (
                    [ExternalProjectID] => 53
                    [ProjectName] => Doon Creek
                    [Location] => Array
                        (
                            [Address] => 123 Fake Street
                            [City] => Toronto
                            [Province] => ON
                            [Latitude] => 43.0000
                            [Longitude] =>  -80.0000
                        )

                    [Website] => http://www.website.com/our-communities.php?newcommunity=53
                    [ContactInformation] => Array
                        (
                            [ContactPhone] => 555-5555
                            [ContactEmail] => email@email.com
                            [SalesOfficeAddress] => 123 Fake Street
                            [SalesOfficeCity] => Toronto
                            [SalesOfficeProvince] => ON
                        )

                )

        )
Run Code Online (Sandbox Code Playgroud)

现在我试图将其转换为 XML,就像它在数组中的样子一样,就像 Project 应该是一个包含所有内容的节点,Location 也应该是一个节点,其中包含该节点内 Location 数组内的所有内容以及 ContactInformation。

这就是我所拥有的:

$xml = new SimpleXMLElement();

$node = …
Run Code Online (Sandbox Code Playgroud)

php xml arrays

2
推荐指数
1
解决办法
1万
查看次数