PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 6
filchakov Отправлено: 18 Июля, 2011 - 03:29:14 • Тема: Помогите перевести число 9.33262154439E+157 • Форум: Вопросы новичков

Ответов: 11
Просмотров: 617
black_ru пишет:
Факториал числа 100 на калькуляторе дает именно такое число.
Да все верно, я должен был получить это число.
Я его нашел через математические функции BCMath, они такое могут. Все спасибо ;)
filchakov Отправлено: 17 Июля, 2011 - 21:03:07 • Тема: Помогите перевести число 9.33262154439E+157 • Форум: Вопросы новичков

Ответов: 11
Просмотров: 617
Нужно найти сумму чисел факториала. Число для которого ищется факториал довольно таки большое.
filchakov Отправлено: 17 Июля, 2011 - 20:51:00 • Тема: Помогите перевести число 9.33262154439E+157 • Форум: Вопросы новичков

Ответов: 11
Просмотров: 617
White пишет:
для этого вам нужно это число полностью, у вас есть только округленный вариант
это я понимаю, я искал функцию которая распишет число полностью без округлений.
White пишет:
это примерно 2 в 512 степени

нужно точно, так как у меня есть ответ и он должен совпасть
filchakov Отправлено: 17 Июля, 2011 - 20:05:38 • Тема: Помогите перевести число 9.33262154439E+157 • Форум: Вопросы новичков

Ответов: 11
Просмотров: 617
Здравствуйте, мне нужно посмотреть число 9.33262154439E+157 полностью. Мну нужно найти сумму всех цифр этого числа. А для этого нужно их все посмотреть. Подскажите как это сделать? Функции такой я не нашел.
filchakov Отправлено: 27 Августа, 2010 - 14:56:56 • Тема: поменять вид загрузки файла • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 52
первый вариант. файл который лежит на сервере
filchakov Отправлено: 27 Августа, 2010 - 07:13:35 • Тема: поменять вид загрузки файла • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 52
Здравствуйте, мне нужно немного переделать код. Нужно изменить вид загрузки файла, сейчас он задается с помощью кнопки "Обзор" и загружается на сайт. а мне нужно чтобы оно (Uchkuma: что "оно"?) бралось из файла который заранее находится в главной директории сайта и имеет имя name.xml (sitename/name.xml), еще мне нужно задать по умолчанию автора "admin". Помогите пожалуйста.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /*
  3. =====================================================
  4.  Файл: dz_import.php
  5. -----------------------------------------------------
  6.  Назначение: Импорт контента с программы Зеброид (http://zebroid.ru)
  7. =====================================================
  8. */
  9. if(!defined('DATALIFEENGINE'))
  10. {
  11.   die("Hacking attempt!");
  12. }
  13.  
  14. define(ZI_ERROR, 'zebroid_import_error!');
  15.  
  16. //Проверка версии движка
  17. if ($config['version_id'] === "8.5") {
  18.         if( ! $user_group[$member_id['user_group']]['admin_editusers'] ) {
  19.                  msg( "error", $lang['index_denied'], $lang['index_denied'] );
  20.         }
  21. } else {
  22.         if($member_db[1] != 1){ msg("error", $lang['addnews_denied'], $lang['db_denied']); }
  23. }
  24.  
  25.  
  26. echoheader("user",$lang['opt_priv']);
  27.  
  28. echo <<<HTML
  29. <div style="padding-top:5px;padding-bottom:2px;">
  30. <table width="100%">
  31.     <tr>
  32.         <td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
  33.         <td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
  34.         <td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
  35.     </tr>
  36.     <tr>
  37.         <td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
  38.         <td style="padding:5px;" bgcolor="#FFFFFF">
  39. <table width="100%">
  40.  
  41. <tr style='' id="general"><td>
  42. <table width="100%">
  43.     <tr>
  44.         <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">Импорт файла в формате DXR</div></td>
  45.     </tr>
  46. </table>
  47. <div class="unterline"></div>
  48.  
  49. <!--Форма импорта-->
  50. <form method="post" enctype="multipart/form-data">
  51.         <p>Автор: <input name="autor" type="text" size="30"></p>
  52.         <p>Файл:&nbsp; <input type="file" name="dz_file"></p>
  53.         <p><input type="submit" class="buttons" value=" Начать импорт "></p>
  54. </form>
  55. HTML;
  56. $autor = admin;
  57.  
  58. function get_all_cats(){
  59.         global $db;
  60.         $sql_result = $db->query( "SELECT id, alt_name FROM " . PREFIX . "_category" );
  61.                
  62.         while ($row = $db->get_row($sql_result)) $result [ $row['alt_name'] ] = $row['id'];
  63.         return $result;
  64. }
  65.  
  66. function get_terms($from, $field, $where=''){
  67.         global $db;
  68.        
  69.         if (!$where) $sql_result = $db->query( "SELECT $field FROM " . PREFIX . "_$from" );
  70.         else $sql_result = $db->query( "SELECT $field FROM " . PREFIX . "_$from WHERE $where" );
  71.  
  72.         while ($row = $db->get_row($sql_result)) $result [] = $row[$field];
  73.         return $result;
  74. }
  75.  
  76. function dle_insert_post($postdata, $tags, $autor){
  77.         //$postdata = array('post_title', 'post_alt_name', 'post_cats', 'post_short_story', 'post_full_story', 'post_description', 'post_date', 'post_keywords', 'post_tags');
  78.         global $db, $parse;
  79.        
  80.         $postdata['post_full_story'] = $db->safesql ($parse->BB_Parse( $postdata['post_full_story'], false ));
  81.         $postdata['post_short_story'] = $db->safesql ($parse->BB_Parse( $postdata['post_short_story'], false ));
  82.         $postdata['post_description'] = $db->safesql ($parse->BB_Parse( $postdata['post_description'], false ));
  83.         $postdata['post_title'] = $db->safesql ($parse->BB_Parse( $postdata['post_title'], false ));
  84.         $postdata['post_keywords'] = $db->safesql ($parse->BB_Parse( $postdata['post_keywords'], false ));
  85.         $postdata['post_tags'] = $db->safesql ($parse->BB_Parse( $postdata['post_tags'], false ));
  86.         if (strlen($postdata['post_title'])>0) $symbol = strtolower($postdata['post_title'][0]); else $symbol = '';
  87.        
  88.         $db->query( "INSERT INTO " . PREFIX . "_post (autor, date, short_story, full_story, title, descr, keywords, category, alt_name, tags, approve, xfields, allow_main, symbol) values ('".
  89.                                 $autor."', '".$postdata['post_date']."', '".$postdata['post_short_story']."', '".$postdata['post_full_story']."', '".
  90.                                 $postdata['post_title']."', '".$postdata['post_description']."', '".$postdata['post_keywords']."', '".$postdata['post_cats']."', '".
  91.                                 $postdata['post_alt_name']."', '".$postdata['post_tags']."', 1, '', 1, '". $symbol ."')" );
  92.  
  93.         $post_id = $db->insert_id();
  94.        
  95.         foreach ($tags as $tag) {
  96.                 $ins_tag = $db->safesql ($parse->BB_Parse( $tag, false ));
  97.                 $db->query( "INSERT INTO " . PREFIX . "_tags (news_id, tag) values (".$post_id.", '".$ins_tag."')" );  
  98.         }
  99. }
  100.  
  101. function dle_insert_category($catarr){
  102.         global $db;
  103.        
  104.         $catarr['cat_name'] = $db->safesql($catarr['cat_name']);
  105.        
  106.         $db->query( "INSERT INTO " . PREFIX . "_category (name, alt_name, parentid, posi, keywords) values ('".$catarr['cat_name']."', '".$catarr['category_nicename']."', ".$catarr['parentid'].", 1, '')" );
  107.        
  108.         //Очищаем кэшь категорий
  109.         @unlink(ENGINE_DIR.'/cache/system/category.php');
  110.        
  111.         $cat_id = $db->insert_id();    
  112.         return $cat_id;
  113. }
  114.  
  115.  
  116.  
  117. class DZ_Import {
  118.  
  119.         var $file;
  120.         var $author;
  121.         var $home_url;
  122.         var $cats_list = array ();
  123.         var $categories = array ();
  124.  
  125.  
  126.  
  127.         function get_tag( $string, $tag ) {
  128.                 preg_match("|<($tag).*?>(.*?)</$tag>|is", $string, $return);
  129.                 if ($return[1] == '') return ZI_ERROR;
  130.                
  131.                 $return = preg_replace('|^<!\[CDATA\[(.*)\]\]>$|s', '$1', $return[2]);
  132.                 return $return;
  133.         }
  134.  
  135.  
  136.         function get_entries($process_post_func=NULL) {        
  137.                 set_magic_quotes_runtime(0);
  138.  
  139.                 $doing_entry = false;
  140.                 $is_dxr_file = false;
  141.  
  142.                 $fp = fopen($this->file, 'r');
  143.                 if ($fp) {
  144.                         while ( !feof($fp) ) {
  145.                                 $importline = rtrim(fgets($fp));
  146.  
  147.                                 // this doesn't check that the file is perfectly valid but will at least confirm that it's not the wrong format altogether
  148.                                 if ( !$is_dxr_file && preg_match('|xmlns:dle="http://zebroid[.]ru/"|', $importline) )
  149.                                         $is_dxr_file = true;
  150.  
  151.                                 if ( false !== strpos($importline, '<dle:category>') ) {
  152.                                         preg_match('|<dle:category>(.*?)</dle:category>|is', $importline, $category);
  153.                                         $this->cats_list[] = $category[1];
  154.                                         continue;
  155.                                 }
  156.  
  157.                                 if ( false !== strpos($importline, '<item>') ) {                               
  158.                                         $this->post = '';
  159.                                         $doing_entry = true;
  160.                                         continue;
  161.                                 }
  162.                                 if ( false !== strpos($importline, '</item>') ) {
  163.                                         $doing_entry = false;
  164.                                         if ($process_post_func)
  165.                                                 call_user_func($process_post_func, $this->post);
  166.                                         continue;
  167.                                 }
  168.                                 if ( $doing_entry ) {
  169.                                         $this->post .= $importline . "\n";
  170.                                 }
  171.                         }
  172.  
  173.                         fclose($fp);
  174.                 }
  175.  
  176.                 return $is_dxr_file;
  177.  
  178.         }
  179.  
  180.         function import_file($file) {
  181.                 //Записываем имя файла
  182.                 $this->file = $file;
  183.  
  184.                 //Получаем список категорий с файла
  185.                 if (!($this->get_entries())) {echo "Не верный формат файла";
  186.                 } else {
  187.                         //Обрабатываем этот список
  188.                         $this->process_categories();
  189.                         //Получаем и обрабатываем посты
  190.                         $result = $this->process_posts();
  191.                 }
  192.         }
  193.  
  194.  
  195.         function process_categories() {
  196.                
  197.                 //Получть имена всех категорий
  198.                 $cat_names = (array) get_all_cats();
  199.  
  200.                 //Добавляем категории что необходимы
  201.                 while ( $c = array_shift($this->cats_list) ) {
  202.                         $cat_name = trim($this->get_tag( $c, 'dle:cat_name' ));
  203.                         $category_nicename      = $this->get_tag( $c, 'dle:category_nicename' );
  204.                         $parent = $this->get_tag( $c, 'dle:category_parent' );
  205.  
  206.                         // Если категория уже есть, то пропускаем
  207.                         if ( isset($cat_names[$category_nicename])) {
  208.                                 $this -> categories [$category_nicename] = $cat_names[$category_nicename];
  209.                                 continue;
  210.                                 }
  211.  
  212.                         //Определяем id родительской категории
  213.                         if ( empty($parent) )
  214.                                 $parentid = '0';
  215.                         else {         
  216.                                 //echo $parent.' - ';
  217.                                 $parentid = $this -> categories [$parent];
  218.                                 //echo '"'.$parentid.'"';
  219.                                 }
  220.                                
  221.  
  222.                         //Добавляем категорию в БД
  223.                         $catarr = compact('cat_name', 'category_nicename', 'parentid');
  224.                         $cat_ID = dle_insert_category($catarr);                
  225.                         //Заносим категорию в массив
  226.                         $this -> categories [$category_nicename] = $cat_ID;                    
  227.                 }
  228.         }
  229.  
  230.  
  231.  
  232.         function process_posts() {
  233.                 echo '<ol>';
  234.                 $this->get_entries(array(&$this, 'process_post'));
  235.                 echo '</ol>';
  236.                 echo '<h3>'.sprintf('<div style="text-align:center;">Вот и всё.'.' <a href="%s">'.'Посмотреть на сайт!'.'</a>', $this -> home_url).'</div></h3>';
  237.         }
  238.  
  239.         function process_post($post) {
  240.  
  241.                 set_time_limit( 60 );
  242.  
  243.                 //Вытягаем данные
  244.                 $post_title     = $this->get_tag( $post, 'title' );
  245.                 $post_alt_name  = $this->get_tag( $post, 'alt_name' );
  246.                 $post_date      = $this->get_tag( $post, 'date' );             
  247.                 $post_keywords = $this->get_tag( $post, 'keywords' );
  248.  
  249.                 $post_full_story = $this->get_tag( $post, 'full_story' );              
  250.                 $post_full_story = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_full_story);
  251.                 $post_full_story = str_replace('<br>', '<br />', $post_full_story);
  252.                 $post_full_story = str_replace('<hr>', '<hr />', $post_full_story);
  253.                
  254.                 $post_short_story  = $this->get_tag( $post, 'short_story' );
  255.                 $post_short_story = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_short_story);
  256.                 $post_description  = $this->get_tag( $post, 'description' );
  257.                 $post_description = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_description);
  258.  
  259.                 //Достаем таги
  260.                 preg_match_all('|<tag>(.*?)</tag>|is', $post, $tags);
  261.                 $tags = $tags[1];
  262.  
  263.                 //Получаем список тагов
  264.                 $post_tags = '';
  265.                 $tag_index = 0;
  266.                 foreach ($tags as $tag) {
  267.                         $tags[$tag_index] = $tag;
  268.                         $tag_index++;
  269.                         $post_tags .= $tag.',';
  270.                 }
  271.                 $post_tags = substr($post_tags, 0, -1);
  272.  
  273.                 //Достаем категории
  274.                 preg_match_all('|<category>(.*?)</category>|is', $post, $post_categories);
  275.                 $post_categories = $post_categories[1];
  276.  
  277.                 //Получаем список категорий
  278.                 $post_cats = '';
  279.                 foreach ($post_categories as $category) {
  280.                         $post_categories[$cat_index] = $category;
  281.                         $post_cats .= $this -> categories[$category].',';
  282.                 }
  283.                 $post_cats = substr($post_cats, 0, -1);
  284.                
  285.                
  286.                 //Проверяем нет ли такого поста
  287.                 $post_exists = get_terms("post","id","alt_name='".$post_alt_name."'");
  288.                
  289.                 if ($post_full_story == ZI_ERROR) { //Слишком длинная фулл стори
  290.                         echo '<li>';
  291.                         printf('Добавляю статью <em>%s</em> - <font color="red"><b>слишком длинная статья (максимум 65535 символов)</b></font>.', stripslashes($post_title));          
  292.                 }              
  293.                 elseif ( $post_exists ) { //Если пост уже существует
  294.                         echo '<li>';
  295.                         printf('Добавляю статью <em>%s</em> - <font color="red"><b>уже существует</b></font>.', stripslashes($post_title));
  296.                 } else {
  297.                         //Иначе добавляем его
  298.                         echo '<li>';
  299.  
  300.                         $postdata = compact('post_title', 'post_alt_name', 'post_cats', 'post_short_story', 'post_full_story', 'post_description', 'post_date', 'post_keywords', 'post_tags');
  301.                         printf('Добавляю статью <em>%s</em>...', stripslashes($post_title));
  302.                
  303.                 //Добавляем в БД пост и таги
  304.  
  305.                 dle_insert_post($postdata, $tags, $this -> author);
  306.                 echo ' - <font color="green"><b>добавлено</b></font>';
  307.                 }
  308.                 print "</li>\n";               
  309.                 flush();
  310.         }
  311.  
  312.  
  313.         function WP_Import() {
  314.                 // Ничего :)
  315.         }
  316.  
  317. }
  318.  
  319.  
  320. if (!( $_REQUEST['autor'] )) $error = "Не указан автор; ";
  321. if (!$_FILES["dz_file"]["tmp_name"]) $error .= 'Не выбран файл';
  322.  
  323. if ((!$error) AND (strtolower($_SERVER['REQUEST_METHOD']) == 'post')) {
  324.         if (isset ( $_REQUEST['doaction'] )) $doaction = $_REQUEST['doaction']; else $doaction = "";
  325.        
  326.         $dz_import = new DZ_Import();
  327.        
  328.         include_once ENGINE_DIR . '/classes/parse.class.php';  
  329.         $parse = new ParseFilter( );
  330.  
  331.         $dz_import -> author = $_REQUEST['autor'];
  332.         $dz_import -> home_url = $config['http_home_url'];
  333.         $dz_import -> import_file($_FILES["dz_file"]["tmp_name"] );    
  334.        
  335.        
  336.         unset($parse);
  337.         unset($dz_import);
  338.        
  339.         //Очищаем кэш  
  340.         clear_cache();
  341.        
  342. } else {
  343.  
  344. if ((strtolower($_SERVER['REQUEST_METHOD']) == 'post')) echo '<div style="color:red; text-align:center;"><b>Ошибка</b>: '.$error.'</div>';
  345. }
  346.  
  347. echo <<<HTML
  348. </table>
  349. </td>
  350.         <td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
  351.     </tr>
  352.     <tr>
  353.         <td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
  354.         <td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
  355.         <td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
  356.     </tr>
  357. </table>
  358. </form>
  359. HTML;
  360.  
  361. echofooter();
  362. ?>

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB