Hi all,
I am at a loss to understand why this doesn't work.
I have a simple function:
function toHTML($inputText)
{
$inputText = str_replace('<','<',$inputText);
$inputText = str_replace('>','>',$inputText);
$inputText = str_replace('&','&',$inputText);
$inputText = str_replace("'",''',$inputText);
$inputText = str_replace('"','"',$inputText);
return $inputText;
}
When I run code through it, specifically xml files from which I need to remove/replace the above charachters, it seems to refuse to replace all of the characters. For example, when I run the following text through this function, the '&' charachter I have highlighted is not replaced:
<?xml version="1.0" ?>
<!-- Purchase Order XML
Copyright 2010
Version 1.0
--><PurchaseOrder>
<Envelope>
<SenderID>xxx</SenderID>
<ReceiverID>xxx</ReceiverID>
<DateStamp type="MessageDate">2011-02-09</DateStamp>
<VersionID>1.4</VersionID>
</Envelope>
<Header>
<Party type="SoldTo">
<IDNumber type="Supplier">xxx</IDNumber>
<IDNumber type="Reseller">xxx</IDNumber>
<Name>John Doe</Name>
<AddressLine1>Temp</AddressLine1>
<AddressLine2>Address 1</AddressLine2>
<AddressLine3>Address 1</AddressLine3>
<Street>Address 1</Street>
<City>West Midlands</City>
<PostCode>DY9 8QH</PostCode>
<CountryCode>GB</CountryCode>
<ContactPhone>01384444555</ContactPhone>
</Party>
<Party type="ShipTo">
<IDNumber type="Supplier">xxx</IDNumber>
<IDNumber type="Reseller">DIRECTDROP</IDNumber>
<Name> </Name><AddressLine1></AddressLine1>
<Street></Street>
<City></City><PostCode></PostCode>
<CountryCode></CountryCode>
<ContactPhone></ContactPhone>
</Party>
<!-- Kill/Fill 1-Back order allow. 2-Back order allow but ship complete. 3-Line item kill or fill. 4-whole order kill or fill. -->
<KillOrFill>1</KillOrFill>
<TotalValues>
<Currency>GBP</Currency>
<VATRate>20.0</VATRate>
<MonetaryAmount type="FreightCharge">5.00</MonetaryAmount>
<MonetaryAmount type="VATAmount">1</MonetaryAmount>
<MonetaryAmount type="GoodsNetTotal">0</MonetaryAmount>
<MonetaryAmount type="OrderNetTotal">5</MonetaryAmount>
<MonetaryAmount type="GrossTotal">6</MonetaryAmount>
</TotalValues>
<OrderType>Direct Drop</OrderType>
<DocumentReference>
<DocumentNumber type="ResellerPO">J653</DocumentNumber>
<DateStamp type="ResellerPO">2011-02-09</DateStamp>
</DocumentReference>
</Header>
<Line>
<Item>
[b][color=red]<ProductName>Freecom Hard Drive Dock 2.5/3.5 USB&SATA</ProductName>[/color][/b]
<ProductNumber type="Supplier">3294</ProductNumber>
<Quantity type="Ordered">2</Quantity>
<MonetaryAmount type="UnitPrice"></MonetaryAmount>
<MonetaryAmount type="LineTotal">0</MonetaryAmount>
</Item>
</Line>
</PurchaseOrder>
The '&' between USB&SATA is not replaced with & on this line:
<ProductName>Freecom Hard Drive Dock 2.5/3.5 USB&SATA</ProductName>
Does anybody know why?
Thanks in advance