好吧,基本上我遇到的问题是我有一个名为Playlist.xml
的文件,其中包含我的rtmp流路径但是我需要根据正在播放的房间来改变流,所以加载它吧编辑流的路径,例如在PHP中,我将使用_GET
函数执行此操作,然后在rtmp路径中回显用户名,但我遇到的问题是Playlist.xml
已加载在.swf file
中且文档不是.php
,那么我可以做些什么来.xml file
获取我的个人资料的用户名?上。
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>
所以问题在于文档的这一部分;
path="rtmp://111.11.11.111/live/username"
我需要username
获取我正在观看的会议室的用户名,这将如何实现?三江源。
答案 0 :(得分:2)
使用DOMDocument
,DOMXpath
和preg_replace()
进行此操作。
首先,初始化DOMDocument
,加载XML并初始化DOMXPath
:
$dom = new DOMDocument();
$dom->loadXML( $xml );
$xpath = new DOMXPath( $dom );
然后,选择path
个节点的所有playitem
属性:
$nodes = $xpath->query( '//playlist/playitem/@path' );
最后,处理每个节点,并通过preg_replace()
调用 - 将用户名添加到数组中:
$usernames = array();
foreach( $nodes as $node )
{
$usernames[] = preg_replace( '{^.+/([^/]+)$}','\1',$node->nodeValue );
}
现在,在$usernames
数组中,您拥有所有用户名。
的 3v4l demo 强>
正则表达式解释:
^ Start of string
.+ zero-or-more undefined characters
/ a slash
([^/]+) group 1: one-or-more not-slash characters
$ End of string