fini Опубликовано 28 Июля 2014 Жалоба Поделиться Опубликовано 28 Июля 2014 //------------------------- // Init //------------------------- define( 'IPB_THIS_SCRIPT', 'public' ); define( 'IPS_PUBLIC_SCRIPT', 'index.php'); define( 'IPS_ENFORCE_ACCESS', true); require_once( 'initdata.php' ); require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' ); require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' ); $registry = ipsRegistry::instance(); $registry->init(); $DB = $registry->DB(); require_once( IPSLib::getAppDir('forums') . '/sources/classes/post/classPost.php' ); $member_id = 1; $member = IPSMember::Load( $member_id, 'members' ); $member['member_group_id'] = 4; $member['g_post_new_topics'] = 1; $forumID = 28; for ($i=0;$i<=$count-1;$i++) { $postClass = new classPost( $registry ); $postClass->setForumID( $forumID ); $postClass->setForumData( ipsRegistry::getClass('class_forums')->forum_by_id[$forumID] ); $postClass->setTopicTitle( $title ); $postClass->setPostContent($data); $postClass->setAuthor( $member ); if($postClass->addTopic()) { echo "ok"; } else { echo $postClass->_postErrors."<br>". $postClass->getAuthor( 'member_id' )."<br>". $postClass->getAuthor('g_post_new_topics')."<br>". $perm_array; } } Есть код, автоматически добавляет текст на форум, работает исправно, за исключением одного но.Если я сам через браузер запускаю его, всё хорошо, если через крон - выводит следующее БЛА-бла-блабла<br /><br />-БЛА-бла-блабла БЛА-бла-блабла<br /> Пробовал убирать <br /> регуляркой, тогда весь текст получался в одну строку, пробовал заменить на \n\r - тоже не помогло!Помогите, как решить эту проблему? Пробовал ещё php_get_connect запустить, тоже не помогло Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Arhar Опубликовано 28 Июля 2014 Жалоба Поделиться Опубликовано 28 Июля 2014 echo $postClass->_postErrors."<br>".вот он бр то, нет?или я не понял, проблема в том, что не добавляет? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 fini Опубликовано 28 Июля 2014 Автор Жалоба Поделиться Опубликовано 28 Июля 2014 (изменено) вот он бр то, нет?Нет, этот <br> при ошибке появляется. Суть в том, что при запуске скрипта вручную, $postClass->addTopic() обрабатывает <br / > правильно и они в сообщении не отображаютсяА при запуске скрипта через CRON $postClass->addTopic() добавляет в конце каждого сообщения <br / >Хочу удалить это <br/> В конце каждого сообщения Изменено 28 Июля 2014 пользователем fini Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Denis Chursinov Опубликовано 28 Июля 2014 Жалоба Поделиться Опубликовано 28 Июля 2014 Вы браузером запускаете php как модуль апача или fast-cgi или php-fpm, а cron запускает php-cli. У них могут быть разные конфиги, да и вообще, они могут быть разных версий. А откуда вы $data берете? Если в строке запроса задаете, то тут тоже есть нюансы с html-enteties . А как оно на другие теги в тексте реагирует?Попробуйте еще включить режим html: $postClass->setSettings( array( 'enableSignature' => 1, 'enableEmoticons' => 1, 'post_htmlstatus' => 1 ) ); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 fini Опубликовано 30 Июля 2014 Автор Жалоба Поделиться Опубликовано 30 Июля 2014 Проблему решил вот этим костылём $datatext = preg_replace("/<br \/>/", "\n\r", $datatext); $postClass->setSettings( array( 'enableSignature' => 1, 'enableEmoticons' => 1, 'post_htmlstatus' => 1 ) );не помогло Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
fini
Есть код, автоматически добавляет текст на форум, работает исправно, за исключением одного но.
Если я сам через браузер запускаю его, всё хорошо, если через крон - выводит следующее
Пробовал убирать <br /> регуляркой, тогда весь текст получался в одну строку, пробовал заменить на \n\r - тоже не помогло!
Помогите, как решить эту проблему?
Пробовал ещё php_get_connect запустить, тоже не помогло
Ссылка на комментарий
Поделиться на других сайтах
4 ответа на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.