сначала обратитесь к ребятам eins2.zurich.com.my и сообщите об этом как об ошибке на их сервере, и они должны это исправить.проблема заключается в том, чтобы заставить ваш код работать до тех пор, пока они его не исправят.
я могу сразу подумать о 2 решениях,
1: если число нежелательных байтов постоянно, вы можете проверить ответ с помощьюшестнадцатеричный редактор (например, HxD ) для подсчета количества нежелательных байтов, а затем с помощью substr () их удалите.
здесь я считаю 15 нежелательных байтов в начале строки, а
здесь я считаю 8 нежелательных байтовв конце строки.если это ВСЕГДА 15 байт + 8 байт, вы можете исправить это следующим образом:
$response=substr($response,15,-8);
см. https://3v4l.org/UURms
- НО, который не будет работать, если количество нежелательных байтовпеременная, что приводит меня к решению # 2
, если нежелательные байты никогда не содержат <
или >
, тогда вы можете использовать strpos (), чтобы найти первые <
, и strrpos (), чтобы найти последний <
, и использовать substr (), чтобы удалить все до и после ..
например
$response=substr($response,strpos($response,'<'));
$response=substr($response,0,strrpos($response,'>')+1);
(или если вы хотите однострочник ...$response=substr(($response=substr($response,strpos($response,'<'))),0,strrpos($response,'>')+1);
, но нет, не делайте этого.)
например, https://3v4l.org/Q8JiC
- НО, который не будет работать, если нежелательные байты содержат
<
или >
... если они содержат их, а число нежелательных байтов является переменным, тогда я не могу придумать решение прямо сейчас ..