Какие Шаги Вы Делаете для Поиска и устранения неисправностей проблем с ЗАВИХРЕНИЕМ PHP?

Есть несколько способов сделать это. Первый - использовать встроенный в MS API, который поставляется в комплекте с MS PPT, который представляет собой набор COM-объектов. Второй - использовать стандарт OpenXML, который был создан после того, как MS была вынуждена открыть Office для общественности. Он позволяет вам создавать любые документы MS Office, используя формат на основе XML.

Microsoft PowerPoint API : это сложно из-за управления версиями и лицензирования. Просто имейте в виду, что COM API взаимодействует (как бы) напрямую с PowerPoint, сохраненным на вашем компьютере. Поэтому, если вы перенесете свое приложение на другой компьютер, вам нужно будет убедиться, что PPT установлен там и что управление версиями и лицензирование совместимы с объектами COM, с которыми вы разработали (или замените их совместимыми объектами COM). Начните здесь, если вы хотите пойти по этому пути: https://docs.microsoft.com/en-us/visualstudio/vsto/powerpoint-solutions?view=vs-2017

[ 118] OpenXML . Преимуществом использования OpenXML является то, что для него не требуется устанавливать PowerPoint на компьютер, на котором выполняется приложение. У Microsoft есть библиотека .net, которая помогает в создании документов OpenXML. Прочтите эту статью о том, как создать базовую презентацию PPT с их API: https://docs.microsoft.com/en-us/office/open-xml/how-to-create-a-presentation-document -предоставляя-имя-файла . Я также нашел этот ответ SO, в котором есть несколько хороших ссылок: Образец create powerpoint с openxml

Удачи!

12
задан Community 23 May 2017 в 12:00
поделиться

2 ответа

I find the CURLINFO_HEADER_OUT option to be very useful.

<?php
$curl = curl_init('http://www.php.net');

curl_setopt($curl, CURLOPT_HEADERFUNCTION, 'dbg_curl_data');
curl_setopt($curl, CURLOPT_WRITEFUNCTION, 'dbg_curl_data');
curl_setopt($curl, CURLINFO_HEADER_OUT, true);

curl_exec($curl);

echo '<fieldset><legend>request headers</legend>
  <pre>', htmlspecialchars(curl_getinfo($curl, CURLINFO_HEADER_OUT)), '</pre>
</fieldset>';

echo '<fieldset><legend>response</legend>
  <pre>', htmlspecialchars(dbg_curl_data(null)), '</pre>
</fieldset>';

function dbg_curl_data($curl, $data=null) {
  static $buffer = '';

  if ( is_null($curl) ) {
    $r = $buffer;
    $buffer = '';
    return $r;
  }
  else {
    $buffer .= $data;
    return strlen($data);
  }
}
15
ответ дан 2 December 2019 в 19:32
поделиться

На самом деле, я никогда не использую CURL (в php). API-интерфейс PHP-потока значительно удобнее и может использоваться также для POST-данных. У Вез Фарлонга есть статья об этом.

Если бы я использовал это? Я бы начал с включения всех сообщений (настройка сообщения об ошибках на E_ALL). Если я обнаружу, что PHP не сообщает мне, что мне нужно в сообщениях об ошибках, я бы, вероятно, использовал прокси-подход, чтобы увидеть, что на самом деле происходит. Изменение целевого URL на локальную страницу php, содержащую что-то вроде

<?php
var_dump($_POST);
var_dump($_GET);
var_dump($_SERVER);

, является одним из способов. Другой способ заключается в использовании утилиты, такой как netcat, для прослушивания порта 80 и отправки запроса туда:

netcat -l -p 80

Это ничего не вернет в curl, но позволит вам точно увидеть, что отправляется на сервер, чего может быть достаточно диагностировать проблему.

Вы также можете извлечь заголовки из PHP, используя функцию apache_request_headers () . В большинстве случаев я предпочитаю подход netcat, поскольку он гарантирует, что я вижу неизмененную правду, а также отображаю необработанные данные постов.

3
ответ дан 2 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

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