#php #xml
#php #xml
Вопрос:
В файле PHP я присваиваю XML-файл входной переменной
Пример:
$xmlfile = '<?xml version="1.0" encoding="UTF-8"?>
<creators>
<creator>
<creatorName>Ganesh</creatorName>
</creator>
</creators>
<identifier identifierType="id">Dynamic input($input)</identifier>';
В части динамического ввода я хочу объявить переменную типа $input, которая будет основана на предыдущем значении.
Как я могу объявить переменную ($input) в «(одинарные кавычки), потому что объявление нарушает структуру.
Ответ №1:
Вы можете объединить его в:
$xmlfile = '<?xml version="1.0" encoding="UTF-8"?>
<creators>
<creator>
<creatorName>Toru, Nozawa</creatorName>
</creator>
</creators>
<identifier identifierType="id">Dynamic input(' . $input. ')</identifier>';
Справедливое предупреждение, XML не может содержать все значения, поэтому вам может потребоваться экранировать данные в зависимости от того, откуда они берутся — например, вам могут не понадобиться угловые скобки, и вам, безусловно, нужно очистить все управляющие символы.
Ответ №2:
Вы должны использовать double quotes
или выбрать строку HEREDOC.
$xmlfile = "<?xml version="1.0" encoding="UTF-8"?>
<creators>
<creator>
<creatorName>Toru, Nozawa</creatorName>
</creator>
</creators>
<identifier identifierType="id">Dynamic input($input)</identifier>";
Строка HEREDOC : ( <<<ABC
является идентификатором открытия, а идентификатор закрытия должен начинаться с первого столбца строки — ABC
.
$xmlfile = <<<ABC
<?xml version="1.0" encoding="UTF-8"?>
<creators>
<creator>
<creatorName>Toru, Nozawa</creatorName>
</creator>
</creators>
<identifier identifierType="id">Dynamic input($input)</identifier>
ABC;
Ответ №3:
Попробуйте:
$xmlfile = '<?xml version="1.0" encoding="UTF-8"?>
<creators>
<creator>
<creatorName>Toru, Nozawa</creatorName>
</creator>
</creators>
<identifier identifierType="id">Dynamic input('.$input.')</identifier>';
Ответ №4:
Я предпочитаю использовать объединение вместо включения переменных в двойные кавычки или HEREDOC (но HEREDOC идет следующим в моем списке предпочтений, если текст достаточно длинный) по трем причинам:
1) нет необходимости экранировать все двойные кавычки (конечно, не применимо к HEREDOC); 2) интерпретатору PHP не нужноразбирайте длинный текст снова и снова в каждом запросе, чтобы найти любую переменную внутри и заменить ее на ее значение.
3) меньше шансов сделать опечатку в имени переменной.