Должен хорошо работать.
$data = array('name' => 'Ross', 'php_master' => true);
// You can POST a file by prefixing with an @ (for fields)
$data['file'] = '@/home/user/world.jpg';
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
curl_exec($handle);
curl_close($handle)
у Нас есть две опции здесь, CURLOPT_POST
, который включает POST HTTP, и CURLOPT_POSTFIELDS
, который содержит массив наших данных сообщения для представления. Это может использоваться для представления данных POST
с.
важно отметить, что curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
берет $data в двух форматах, и что это определяет, как данные сообщения будут закодированы.
$data
как array()
: данные будут отправлены как [1 110], который не всегда принимается сервером.
$data = array('name' => 'Ross', 'php_master' => true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
$data
, поскольку URL закодировал строку: данные будут отправлены как [1 112], который является кодировкой по умолчанию для отправленных данных формы HTML.
$data = array('name' => 'Ross', 'php_master' => true);
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));
я надеюсь, что это поможет другим сэкономить свое время.
См.:
Это абсолютно неверно. Любой современный инструмент управления версиями поддерживает хуки как до, так и после фиксации, после чего вы можете запускать любой код, который хотите.
В Subversion мы используем ловушку после фиксации для развертывания копии приложения на сервере разработки каждый раз разработчик проверяет код.
На наших реальных производственных серверах у нас есть код, который проверяет и затем развертывает стабильные теги младших версий по мере их внесения в репозиторий менеджерами выпуска.
Контроль версий имеет мало общего с управлением выпусками или развертыванием, поэтому логично, что VCS не пытаются делать это тоже.
Что я видел в этой области являются сборками или серверами непрерывной интеграции (CI) . Они слушают изменения в VCS, производят новую проверку любого коммита, а затем пытаются все построить. Таким образом, они интегрируют VCS и инструменты сборки, собирают из них журналы и представляют все в удобном веб-интерфейсе.
Таким образом, каждый инструмент может оставаться простым.
[РЕДАКТИРОВАТЬ] Дополнительные преимущества CI-сервера:
Он может анализировать вывод ваших сценариев сборки и представлять обзор по электронной почте или на веб-странице.
Он гарантирует, что все тесты выполняются после совершить. Больше никаких «но он работает для меня».
Некоторые из них поддерживают отложенную фиксацию (она фиксирует изменения в VCS только при выполнении всех тестов)
Он может запускать сборки для нескольких проектов, которые зависят друг от друга.
Это зависит от того, сколько денег и времени вы хотите вложить в такую систему. многие люди используют простой контроль версий - например, svn, и управляют выпусками вручную (используя ярлыки и ветки) Существуют и другие (бесплатные) инструменты для непрерывной интеграции (постоянного создания приложения), например, cruisecontrol.
В поле базы данных я не знаю ничего хорошего в свободном мире, но кто-то здесь может завершить это. так что теперь я вручную управляю версиями базы данных ....
В мире рубинов на рельсах наиболее предпочтительным инструментом развертывания является Capistrano.
-> Насколько я понимаю, «более современные» инструменты контроля версий поддерживают только часть управления исходным кодом. Правильно ли это понимание?
VCS имеет дело только с частью управления исходным кодом, и это бессмысленно, если вы не можете получать уведомления об изменениях (и после того, как кто-то внедрил основы vcs, это не составит труда обеспечить это; - ))
-> Магазин мэйнфреймов, в котором я работал, имел автоматизированный инструмент управления выпусками, который не только контролировал одновременные модификации исходных текстов, но также заботился о запуске компиляторов, прекомпиляторов, утилит привязки баз данных и т. Д. ., что делает его также нашим полностью автоматизированным инструментом развертывания.
Это называется автоматизацией сборки, и да, очень желательно, чтобы лучшие части проекта были «готовы к отправке». когда кто-то вносит изменения, но в этом нет необходимости. Вы можете делайте все, что хотите, с помощью упомянутых ранее инструментов (они расширяемы).
Практика непрерывной интеграции - это интерполяция этих точек в пути таким образом, чтобы в репозиториях был только чистый, стабильный и благородный код. Существуют так называемые серверы CI, которые соединяют части VC и BA.
проверьте эту страницу на наличие CI http://martinfowler.com/articles/continuousIntegration.html
и если кому-то нужен сервер CI совместим со многими инструментами BA и многими VCS взгляните на JetBrains TeamCity
, надеюсь, это поможет
Я думаю, кто вы Вызов управления выпуском здесь чаще называют автоматизацией сборки . В этом пространстве есть различные инструменты (make, ant, Nant и т. Д.), Но они, как правило, существуют как отдельные инструменты. Часто они могут извлекать код из отдельной системы управления версиями, и вы получаете продукты, предназначенные для наблюдения за процессом (что называется непрерывной интеграцией, когда это делается автоматически).
Некоторые поставщики поставляют сквозные инструменты, которые подпадают под заголовок Управление жизненным циклом приложений