Intereting Posts
mmap / dev / random Проблема с шрифтами с Debian 8.2 Не удается получить доступ к серверу ubuntu с других машин, кроме машины, на которой размещена виртуальная машина, которая является моим сервером ubuntu Подключить текущий MAC-адрес к известному адресу, чтобы обмануть маршрутизатор и устройство регистрации Поиск строки в файлах в текущем каталоге, опустить дубликаты плагин xfce4 netload, монитор на всех интерфейсах? Безопасность SMB и SFTP огромный файл .sujournal на FreeBSD Как сделать автоматическое измерение времени загрузки для свежих изображений? sed удаляет символы из новой строки Экранная команда fedora 20 автоматически завершается Получение работы Ibus с менеджером оконной панели Манипулировать вывод du для получения пользовательской распечатки find (1): как применяется групповой символ звезды для отказа от некоторых имен файлов? Как выполнить команду оболочки, созданную с использованием echo и sed?

Отправить "&" в форму Drupal 6 с помощью cURL?

Я использую этот код для создания узла в Drupal 6:

curl -b cookies.txt -d \ title="$(sed '1,/sblmtitle/d;/slpstitle/,$d' file.html)" \ -d form_build_id=form-5312da71abefb3bf1f63f1f2b7cf9105 \ -d form_token=f65aaefcf6f4b20c9a3d34f5af13ccaf \ -d form_id=post_node_form -d op=Save http://www.site.com/node/add/post 

file.html содержит:

 spasi sblmtitle Some title here & there slpstitle 

Drupal создает узел с заголовком. Some title here . Drupal отклоняет символ & ;

Что я могу сделать, чтобы Drupal 6 принял & ?

Амперсанд имеет особое значение в URL-адресах. Чтобы передать настоящий амперсанд в URL-адресе, вы должны закодировать его как %26 . Вы можете либо внести это изменение с помощью дополнительного выражения sed, либо просто изменить его в своем файле.

& используется для разделения полей формы, используйте параметр --data-urlencode для кодирования & правильно:

 curl -b cookies.txt --data-urlencode \ title="$(sed '1,/sblmtitle/d;/slpstitle/,$d' file.html)" \ -d form_build_id=form-5312da71abefb3bf1f63f1f2b7cf9105 \ -d form_token=f65aaefcf6f4b20c9a3d34f5af13ccaf \ -d form_id=post_node_form -d op=Save http://www.site.com/node/add/post 

На странице руководства

–data-UrlEncode
(HTTP). Данные по сообщениям, аналогичные другим параметрам –data, за исключением того, что это выполняет кодирование URL. (Добавлено в 7.18.0)

имя = содержание
Это заставит curl URL-кодировать часть контента и передать это. Обратите внимание, что часть имени, как ожидается, уже будет URL-кодирована.