在添加之前在PHP中编辑字符串


Edit String in PHP before being added

我有一个写XML文件的系统。

问题是我不能在XML文件中有这个符号&

我需要用&

替换代码中找到的这个符号

问题是我有很多字符串,我不想应用一个函数来替换我拥有的每一个字符串的符号。

这是一个例子:

$stringData ="<?xml version='"1.0'" encoding='"UTF-8'"?>'n";
$stringData .="<ingrooves_import xmlns:xsd='"http://www.w3.org/2001/XMLSchema'" xsi:schemaLocation='"http://schemas.ingrooves.com/INgrooves/INgroovesImport_1_0.xsd'" schema_version='"1'" schema_revision='"0'" xmlns:xsi='"http://www.w3.org/2001/XMLSchema-instance'" xmlns='"http://schemas.ingrooves.com/INgrooves/INgroovesImport_1_0.xsd'">'n";
$stringData .= "<album>'n";
$stringData .= "<title>".$albumTitle."</title>'n";
$stringData .= "<label_reference>LA0001</label_reference>'n";
$stringData .= "<performer>".$MainArtist."</performer>'n";
$stringData .= "<catalog_number>".$CatalogueNumber."</catalog_number>'n";
$stringData .= "<upc>".$UPC_EAN_JAN."</upc>'n";
$stringData .= "<release_date>".$releaseDate."</release_date>'n";
$stringData .= "<copyright>".$DigiDistYear."</copyright>'n";

和我有更多的$stringData在我的代码。所以你可以理解,我不想为每个$stringData应用一个代码来替换那个符号。

我想找到一种方法来告诉代码,对于任何$stringData变量,对于这个$stringData将遇到的任何内容,那么它必须用&amp;替换&

有办法吗?

简而言之,代码应该这样做:

对于你将在$stringData变量中遇到的每一个内容,从现在开始,你应该在每次遇到这个符号时将&更改为&amp;

请帮帮我!

谢谢

在脚本末尾,当您完成向字符串添加代码时,添加以下内容:

$stringData = str_replace ('&','&amp;',$stringData);

您也可以使用正则表达式,但这也可以工作:-)

这可能太牵强了…但是如果在构建XML输出之后简单地使用str_replace呢?

$stringData = str_replace('&','&amp;',$stringData);

注意:

这甚至会将已经存在的&amp;替换为&amp;amp;,所以在使用这行代码之前,请确保您的字符串中没有已经存在的&amp;

使用这个,它应该可以正常工作:

$stringData = str_replace('&','&amp;',$stringData);

我不确定是否正确理解了你的问题。

基本上,在赋值结束时,替换所有出现的&

$myString = "this is a test & you &&& can & see";
$newString = str_replace('&', '&amp', $myString);
echo $newString;

在新变量中,您可以看到所有&现在换成了&

你不能在浏览器中看到结果,因为浏览器会显示所有&如,

您需要查看代码或在终端中测试代码。