Отправьте на другую страницу в рамках Сценария PHP

Спасибо @ sticky-bit, ваше решение сработало, я просто ссылался на неправильный столбец в сравнении.

Окончательный запрос

SELECT ct.id,
       ct.obj_id
       FROM comment_thread ct
            LEFT JOIN (SELECT cc.thread_id,
                              count(*) count
                              FROM comment_comment cc
                              GROUP BY cc.thread_id) x
                      ON x.thread_id = ct.id
       ORDER BY x.count DESC
                        NULLS LAST;
27
задан boop_the_snoot 5 October 2017 в 12:05
поделиться

6 ответов

Возможно, самый простой способ заставить PHP выполнять POST-запрос - это использовать cURL либо в качестве расширения , либо просто передать его другому процессу. Вот пример сообщения:

// where are we posting to?
$url = 'http://foo.com/script.php';

// what post fields?
$fields = array(
   'field1' => $field1,
   'field2' => $field2,
);

// build the urlencoded data
$postvars = http_build_query($fields);

// open connection
$ch = curl_init();

// set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);

// execute post
$result = curl_exec($ch);

// close connection
curl_close($ch);

Также ознакомьтесь с набором классов Zend_Http в платформе Zend, который предоставляет довольно функциональный HTTP-клиент, написанный непосредственно на PHP (расширения не требуются).

2014 EDIT ] - ну, я давно это не писал. В наши дни стоит проверить Guzzle , который снова может работать с расширением curl или без него.

46
ответ дан 28 November 2019 в 05:04
поделиться

index.php

$url = 'http://[host]/test.php';
$json = json_encode(['name' => 'Jhonn', 'phone' => '128000000000']);

$options = ['http' => [
    'method' => 'POST',
    'header' => 'Content-type:application/json',
    'content' => $json
]];

$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);

test.php

$raw = file_get_contents('php://input');
$data = json_decode($raw, true);
echo $data['name']; // Jhonn
1
ответ дан 28 November 2019 в 05:04
поделиться

Для обработки PHP загляните в cURL . Это позволит вам вызывать страницы на вашем сервере и извлекать из него данные. Обычно вы должны сделать что-то вроде этого:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_URL,$fetch_url);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt ($ch,CURLOPT_USERAGENT, $user_agent;
curl_setopt ($ch,CURLOPT_CONNECTTIMEOUT,60);
$response = curl_exec ( $ch );
curl_close($ch);

Вы также можете изучить PHP HTTP Extension .

3
ответ дан 28 November 2019 в 05:04
поделиться
  1. Как и другие пользователи, проще всего сделать это с помощью CURL.

  2. Если curl для вас недоступен, возможно http://netevil.org/blog/2006/nov/http-post-from-php-without-curl

  3. Если это невозможно, вы можете сами написать сокеты http://petewarden.typepad.com/searchbrowser/2008/06/how-to-post-an.html

2
ответ дан 28 November 2019 в 05:04
поделиться

Предполагая, что ваша установка php имеет расширение CURL, это, вероятно, самый простой способ (и наиболее полный, если хотите).

Образец фрагмента:

//set POST variables
$url = 'http://domain.com/get-post.php';
$fields = array(
                      'lname'=>urlencode($last_name),
                      'fname'=>urlencode($first_name),
                      'email'=>urlencode($email)
               );

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

Кредиты идут на http://php.dzone.com . Также не забудьте посетить соответствующие страницы в Руководстве по PHP

6
ответ дан 28 November 2019 в 05:04
поделиться

Метод CURL очень популярен, так что да, его можно использовать. Вы также можете подробнее объяснить эти коды с некоторыми дополнительными комментариями, потому что начинающие могут их понять.

-6
ответ дан 28 November 2019 в 05:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: