libtidy не работает в php

#php #tidy

Вопрос:

Я использую libtidy с php. Я использую xampp, и это показывает, что поддержка tidy включена. Но когда я использую его в своем коде, он показывает следующее предупреждение

 repairString() [function.repairString]: Could not load configuration file tidy-file.php
 

я также попытался использовать объектно-ориентированную версию, но снова получил предупреждение

 tidy_repair_string() [function.tidy-repair-string]: Could not load configuration file tidy-file.php
 

я сохранил аккуратный код в отдельном файле под названием tidy-file.php . это выглядит так

 $options = array("output-xhtml" => true,"clean" => true, "drop-proprietary-attributes" => true,"drop-font-tags" => true,"drop-empty-paras" => true,"hide-comments" => true); 
function getXHTML($html)
{
$xhtml=tidy_repair_string($html,$options);
return $xhtml;
}
 

что может быть не так

Ответ №1:

Из того, что вы показали здесь, следует, что вы пытаетесь использовать переменную, определенную вне функции. Тебе нужно втянуть его внутрь вот так:

 function getXHTML($html)
{
  $options = array("output-xhtml" => true,"clean" => true, "drop-proprietary-attributes" => true,"drop-font-tags" => true,"drop-empty-paras" => true,"hide-comments" => true); 
  $xhtml=tidy_repair_string($html,$options);
  return $xhtml;
}
 

Комментарии:

1. Спасибо, это сработало. но функция может получить доступ к глобальным данным, и вот $options глобальный массив. тогда почему это не сработало?

2. Придерживается ли php других правил области действия, чем c/C

3. @lovesh Да, для того, чтобы глобальная переменная могла использоваться в области функций, вы должны использовать global оператор, чтобы ввести ее следующим образом: global $options; . После этого он будет доступен для функции.