Php Playlist.xml自定义播放列表路径问题

Php Playlist.xml自定义播放列表路径问题,php,xml,Php,Xml,好,,基本上,我遇到的问题是,我有一个名为Playlist.xml的文件,其中包含我的rtmp流路径,但是我需要流根据播放的房间进行更改,因此在加载时它会编辑流的路径,例如在PHP中,我会使用\u GET函数执行此操作,然后在rtmp路径然而,我遇到的问题是,Playlist.xml加载在.swf文件中,并且文档不是.php,因此我可以对.xml文件做些什么来获取我所在配置文件的用户名 Playlist.xml <?xml version="1.0" encoding="UTF-8"?&g

好,,基本上,我遇到的问题是,我有一个名为
Playlist.xml
的文件,其中包含我的rtmp流路径,但是我需要流根据播放的房间进行更改,因此在加载时它会编辑流的路径,例如在PHP中,我会使用
\u GET
函数执行此操作,然后在rtmp路径然而,我遇到的问题是,
Playlist.xml
加载在
.swf文件中,并且文档不是
.php
,因此我可以对
.xml文件做些什么来获取我所在配置文件的用户名

Playlist.xml

<?xml version="1.0" encoding="UTF-8"?>
<playlist>
  <playitem caption="username" path="rtmp://111.11.11.111/live/username" image="FirstFrame.jpg" options="" clickurl="" clicktarget="_blank" endurl="" styleoftarget="browser" endtarget="">
    <watermarkitem position="00:00:00:000" duration="00:00:00:000" videotype="image" filepath="/logo.png" clickurl="" clicktarget="_blank" fadein="0" fadeout="0" origin="top-left" offsetleft="10" offsettop="11" width="200" height="20" transparency="94" options=""/>
  </playitem>
</playlist>
如果我需要
用户名
来获得我正在查看的房间的用户名,如何实现这一点?谢谢。

为此,请使用和

首先,init
DOMDocument
,加载XML和init
DOMXPath

$dom = new DOMDocument();
$dom->loadXML( $xml );
$xpath = new DOMXPath( $dom );
然后,选择
playitem
节点的所有
path
属性:

$nodes = $xpath->query( '//playlist/playitem/@path' );
最后,处理每个节点,并通过
preg\u replace()
调用将用户名添加到数组中:

$usernames = array();
foreach( $nodes as $node )
{
    $usernames[] = preg_replace( '{^.+/([^/]+)$}','\1',$node->nodeValue );
}
现在,在
$usernames
数组中,您拥有所有用户名

正则表达式说明:

^           Start of string
.+          zero-or-more undefined characters
/           a slash
([^/]+)     group 1: one-or-more not-slash characters
$           End of string

  • 了解更多关于
  • 了解更多关于
  • 了解更多关于

非常感谢您的回答我不知道如何使用它,但现在我掌握了基本知识,我可以找到如何在代码中实现它,非常感谢。非常useful@Peanuts请注意,如果XML树与XML示例不同,则xpath查询无法工作!请参阅了解xpath语法。
^           Start of string
.+          zero-or-more undefined characters
/           a slash
([^/]+)     group 1: one-or-more not-slash characters
$           End of string