Я пытаюсь проанализировать значение амперсанда в строке PHP. Он продолжает возвращать пустые значения после запуска моего кода, и я уверен, что это из-за значения «амперсанд» в моей переменной ($ area). Я пробовал htmlspecialchars, html_entity_decode, но безрезультатно. Пожалуйста, смотрите код ниже:Невозможно проанализировать амперсанд в строке PHP
<?php
/** Create HTTP POST */
$accomm = 'ACCOMM';
$state = '';
$city = 'Ballan';
$area = 'Daylesford & Macedon Ranges';
$page = '10';
$seek = '<parameters>
<row><param>SUBURB_OR_CITY</param><value>'. $city .'</value></row>
<row><param>AREA</param><value>'. $area .'</value></row>
</parameters>';
$postdata = http_build_query(
array(
'DistributorKey' => '******',
'CommandName' => 'QueryProducts',
'CommandParameters' => $seek)
);
$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata)
);
/** Get string output of XML (In URL instance) */
$context = stream_context_create($opts);
$result = file_get_contents('http://national.atdw.com.au/soap/AustralianTourismWebService.asmx/CommandHandler?', false, $context);
?>
Pls, как это исправить Благодаря
try urlencode ($ area) – andreimarinescu
Что возвращает пустые значения? Почему вы уверены, что ваша проблема возникает из-за значения в '$ area'? Почему вы не кодируете объекты перед тем, как поместить их в переменную '$ seek' (поскольку некодированные' & 'обычно недействительны в XML, если только внутри блока CDATA)? –
@andreimarinescu: Это не работает – akinboj