Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加前在PHP中编辑字符串_Php_Replace - Fatal编程技术网

添加前在PHP中编辑字符串

添加前在PHP中编辑字符串,php,replace,Php,Replace,我有一个编写XML文件的系统 问题是XML文件中不能包含此符号& 我需要用&;替换代码中的任何符号 问题是我有很多字符串,我不想应用一个函数来替换我拥有的每个字符串的符号 这是一个例子: $stringData ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; $stringData .="<ingrooves_import xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xsi

我有一个编写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将遇到的任何内容,它必须替换为&

有办法吗

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

对于$stringData变量中的每一个内容,从现在起,您应该使用&;进行更改;每次你遇到这个符号

请帮帮我


谢谢

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

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

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

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

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

您也可以使用正则表达式,但这同样适用:-

这可能太牵强了。。。但是,在构建XML输出之后简单地使用它又如何呢

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


这将取代现有的&;至&;amp;,因此,请确保您还没有一些&;在使用这行代码之前,请先输入字符串。

这可能太牵强了。。。但是,在构建XML输出之后简单地使用它又如何呢

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


这将取代现有的&;至&;amp;,因此,请确保您还没有一些&;在使用这行代码之前,请先输入字符串。

使用此命令,它应该可以正常工作:


$stringData=str_替换“&”、“&;”$stringData

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


$stringData=str_替换“&”、“&;”$stringData

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

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

$myString = "this is a test & you &&& can & see";
$newString = str_replace('&', '&amp', $myString);
echo $newString;
在新变量中,您可以看到现在使用&

您无法在浏览器中看到结果,因为浏览器将显示全部(&a)&


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

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

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

$myString = "this is a test & you &&& can & see";
$newString = str_replace('&', '&amp', $myString);
echo $newString;
在新变量中,您可以看到现在使用&

您无法在浏览器中看到结果,因为浏览器将显示全部(&a)&


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

最后呢?不是在高层吗?如果我把它放在底部,它不会写错吗?写任何东西之前不应该遵循这一规则吗?不,因为每次&after都会执行此搜索,所以您需要在字符串中实际使用符号才能执行此搜索。您必须在将其输出到文件或回音或其他文件之前使用它。谢谢。它不需要额外的$stringData.=而不是$stringData=?谢谢你,因为你要做的是用干净的绳子替换脏的绳子。如果您使用.=您将在同一个变量中同时包含dirty和cleanned两个字符串,据我所知,这不是您想要的!最后?不是在高层吗?如果我把它放在底部,它不会写错吗?写任何东西之前不应该遵循这一规则吗?不,因为每次&after都会执行此搜索,所以您需要在字符串中实际使用符号才能执行此搜索。您必须在将其输出到文件或回音或其他文件之前使用它。谢谢。它不需要额外的$stringData.=而不是$stringData=?谢谢你,因为你要做的是用干净的绳子替换脏的绳子。如果您使用.=您将在同一个变量中同时包含dirty和cleanned两个字符串,据我所知,这不是您想要的!