이 코드를 사용하여 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이 이를 받아들이도록 하려면 어떻게 해야 합니까 &
?
답변1
&는 URL에서 특별한 의미를 갖습니다. URL에 실제 & 기호를 전달하려면 로 인코딩해야 합니다 %26
. 추가 sed 표현식으로 변경하거나 파일에서 변경할 수 있습니다.
답변2
&
양식 필드를 구분하려면 올바르게 --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에서 추가됨)name=content
그러면 컬이 콘텐츠 부분을 URL 인코딩하여 전달하게 됩니다. 이름 부분은 URL로 인코딩되어야 합니다.