注册 登录
编程论坛 PHP技术论坛

php字符串替换问题——初学者

zl123 发布于 2010-09-13 11:21, 943 次点击
要读取的xml文件
<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<name>123</name>
<position age="45"> http://www.
</employee>

<employee>
<name>456 </name>
<position age="45"> http://www.
</employee>

<employee>

</employees>
php代码

$string = "123456";
$doc = new DOMDocument();
 $doc->load( 'newsgj.xml' );
 $employees = $doc->getElementsByTagName( "employee" );
 foreach( $employees as $employee )
 {
 $names = $employee->getElementsByTagName( "name" );
 $name = $names->item(0)->nodeValue;
 
 $positions = $employee->getElementsByTagName( "position" );
 $position = $positions->item(0)->nodeValue;
 $string = str_replace ( $name, "<a href = '$position'>$name</a>", $string );
}
echo iconv ( "GB2312", "UTF-8", $string );

想要的结果是:123456--><a href = " http://www. href=" http://www.,但循环替换时只能把第一个替换(现在的结果:--><a href = " http://www.),还请高手帮帮忙啊!!!

2 回复
#2
zmh8862010-09-14 15:53
<name>456 </name>
是不是后面多个空格了?
#3
zl1232010-09-19 17:21
那个是多了个空格,但是主要不是这个问题,如果是换成带有中文的字符串的话就不能正常替换,这个应该是编码的问题,也就是说怎样才能使输入的字符串的编码和php里的编码一致,这样才能进行匹配是不是有符合替换条件的。
1