We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 36393
    • 3 Posts
    Приветствую всех.
    Собственно проблема в том, что при вызове функции mathfilter из библиотеки phpmathpublisher страница вешается и в итоге выдает чистый лист.

    Код сниппета:
    ini_set('display_errors','On');
    error_reporting(E_ALL | E_STRICT);
    date_default_timezone_set('Asia/Novosibirsk');
    include_once(MODX_ASSETS_PATH."phplib/phpmathpublisher/mathpublisher.php");
    $txt = "<m>x^2+y^2=0</m>";
    $imgDir = MODX_ASSETS_PATH."images";
    $result = mathfilter($txt,14,$imgDir);
    return $result;
    


    Поясню по шагам. Вначале включаю отображение ошибок.
    Потом выставил defaul_timezone, т.к. xPDO на это ругался.
    Затем задаю выражение, PMP парсит все что внутри тегов <m></m>
    Потом задаю директорию, куда положить изображение, и в конце вызываю mathfilter, который должен вернуть ссылку на изображение с формулой ввиде тега <img>.

    В логах MODx писалось что-то про opendir(), который используется в PMP (дословно не могу привести)
    В логах хостинга пишется следующее:
    [error] mod_fcgid: stderr: PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 36230030 bytes) in /httpdocs/core/xpdo/xpdo.class.php on line 1877
    
    [error] ModSecurity: Rule execution error - PCRE limits exceeded (-8): (null). [uri "/connectors/browser/directory.php"]
    


    Надеюсь с Вашей помощью разобраться в проблеме.
      • 785
      • 2,113 Posts
      Памяти на хостинге мало - 32 мегабайта недостаточно.

      Еще pcre.backtrack_limit увеличить, что-то вроде
      ini_set ('pcre.backtrack_limit','1000000');
      или еще больше
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 36393
        • 3 Posts
        хм... хорошая мысля приходит опосля ... вы знаете, проблема была банальна - отключенные глобальные переменные на сервере, после пары маневров на хостинге, все закрутилось. Но теперь другая петрушка, ссылку на картинку он формирует, а вот саму картинку не создает... Может кто-то пользовался, подскажет? права на папку с картинками выставил в 777, не помогло
          • 36393
          • 3 Posts
          Кароче, рассказываю чем все кончилось, вдруг кто воспользуется.
          И так. По умолчанию на хостинге были выключены глобальные переменные. А в PhpMathPublisher именно они и используются. 2 переменные, в которых указываются пути до папок с шрифтами и картинками ($dirfont и $dirimg) я заменил через define. Оставшиеся 2 переменные это ассоциированные массивы, которые используются для парсинга. Каждый массив я оформил как функцию function getИмяМассива(), и в тех местах где они нужны просто вызывал эти функции. Незнаю почему я сразу так не сделал, а главное почему так сразу не сделал автор библиотеки?