Source for file rainFile.php

Documentation is available at rainFile.php

  1. <?
  2.  
  3. /**  
  4.  * ÆÄÀϠ÷ºÎ °ü¸® ¹× ·¹ÀΠ¿¡µðÅÍ Àü¼Û ³»¿ë °ü¸®
  5.  * @package com.rain
  6.  * @version 9.0
  7.  * @author http://cafen.net (outmind@cafen.net)
  8. */
  9. class rainFile {
  10.  
  11.     /**  
  12.      * ±âº» ÀÛ¾÷ °ø°£
  13.      * 
  14.      * @var String 
  15.     */
  16.     var $base_root = ".";
  17.  
  18.     /**  
  19.      * ±âº» ÀÛ¾÷ ÀÇ À¥URL
  20.      * 
  21.      * @var String 
  22.     */
  23.     var $base_url = ".";
  24.  
  25.     /**  
  26.      * ÆÄÀÏ Àӽõî·Ï °ø°£
  27.      * 
  28.      * @var String 
  29.     */
  30.     var $tmp_dir = "tmp";
  31.  
  32.     /**  
  33.      * µî·Ï±ÝÁö È®ÀåÀÚ¸í
  34.      * 
  35.      * @var String 
  36.     */
  37.     var $forbidden_extension_patten = '(html|htm|php|php3|cgi|phtml|shtml|jsp|asp|exe|com|dll)$';
  38.  
  39.     /**  
  40.      * ¸¶Áö¸· ¿À·ù ¸Þ¼¼Áö
  41.      * 
  42.      * @var String 
  43.     */
  44.     var $error_msg = "";
  45.  
  46.     /**  
  47.      * MultipartRequest Àü¼Û¹ÞÀº µ¥ÀÌŸ
  48.      * 
  49.      * @var Array 
  50.     */
  51.     var $multi = null;
  52.  
  53.     /**  
  54.      * ÃÖ´ë Àü¼Û¹ÞÀ» ¼ö Àִ µ¥ÀÌŸ ¿ë·®(50M)
  55.      * 
  56.      * @var Int 
  57.     */
  58.     var $max_uploadsize = 10485760;
  59.  
  60.     /**  
  61.      * »ý¼ºÀÚ
  62.      *
  63.      * @param  String  ±âº»ÀÛ¾÷°ø°£
  64.      * @param  Array  $_FILES 
  65.     */
  66.     function rainFile($base_root$multi_part Array()) {
  67.         $this->setBaseDir($base_root);
  68.         $this->setMultiPart($multi_part);
  69.     }
  70.  
  71.     /**  
  72.      * ±âº»ÀÛ¾÷°ø°£ ¼³Á¤
  73.      *
  74.      * @param  String  ±âº»ÀÛ¾÷°ø°£
  75.     */
  76.     function setBaseDir($base_root{
  77.         $this->base_root = $base_root;
  78.         $this->tmp_dir = $base_root "junk/";
  79.     }
  80.         
  81.     /**  
  82.      * ¸ÖƼ ÆÄÆ® ¼³Á¤
  83.      *
  84.      * @param  Array    $_FILES 
  85.     */
  86.     function setMultiPart($multi_part{
  87.         $this->multi$multi_part;
  88.     }
  89.  
  90.     /**  
  91.      * ¸ÖƼ ÆÄÆ®¿¡¼­ Æ¯Á¤ form¸íÀÇ ÆÄÀÏ¸í °¡Á®¿À±â
  92.      *
  93.      * @param  String ÆûÀ̸§
  94.      * @return String ÆÄÀϸí
  95.     */
  96.     function getFileName($formName{
  97.         return (is_uploaded_file($this->multi[$formName]['tmp_name'])) $this->multi[$formName]['name']:'';
  98.     }
  99.     
  100.     /**  
  101.      * ¸ÖƼ ÆÄÆ®¿¡¼­ Æ¯Á¤ form¸íÀÇ ÆÄÀÏÅ©±â °¡Á®¿À±â
  102.      *
  103.      * @param  String ÆûÀ̸§
  104.      * @return Int ÆÄÀÏÅ©±â
  105.     */
  106.     function getFileSize($formName{
  107.         return (is_uploaded_file($this->multi[$formName]['tmp_name'])) $this->multi[$formName]['size']:'';
  108.     }
  109.  
  110.     /**  
  111.      * ¼­¹ö¿¡ ÀúÀåµÈ ÆÄÀÏ¿¡¼­ Æ¯Á¤ ÆÄÀÏÀÇ Å©±â °¡Á®¿À±â
  112.      *
  113.      * @param  String ÆÄÀϸí
  114.      * @return Int ÆÄÀÏÅ©±â
  115.     */
  116.     function getSize($fileName{
  117.         return (file_exists($this->base_root . $fileName)) filesize($this->base_root . $fileName)0;
  118.     }
  119.  
  120.     /**  
  121.      * ÆÄÀϰæ·Î ¸í¿¡¼­ ÆÄÀÏ¸í¸¸ °¡Á®¿À±â
  122.      *
  123.      * @param  String ÆÄÀϸí
  124.      * @return String ÆÄÀϸí
  125.     */
  126.     function getName($fileName{
  127.         return basename($fileName);
  128.     }
  129.  
  130.     /**  
  131.      * Uniq ÇÑ ÆÄÀÏ¸í »ý¼º
  132.      *
  133.      * @param  String ¾Õ÷ÀÚ
  134.      * @return String ÆÄÀϸí
  135.     */
  136.     function nameUnique($prefix ""{
  137.         return uniqid($prefix);
  138.     }
  139.  
  140.     /**  
  141.      * Æ¯Á¤ÆÄÀϸíÀÌ ¾÷·Îµå °¡´ÉÇÑ ÆÄÀϸíÀÎÁö È®ÀÎ
  142.      *
  143.      * @param  String ÆÄÀϸí
  144.      * @return Boolean ¾÷·Îµå °¡´É¿©ºÎ
  145.     */
  146.     function isUploadable($fileName{
  147.         return !(rainUtil::find($this->forbidden_extension_patten$fileName));
  148.     }
  149.     
  150.     /**  
  151.      * À¥»ó¿¡ Àִ ÆÄÀÏÀ» ·ÎÄü­¹ö¿¡ ÀúÀå
  152.      *
  153.      * @param  String ¸®¸ðÆ® ¼­¹ö URL
  154.      * @param  String ÀúÀåÇÒ À§Ä¡(¸¶Áö¸·¿¡ / ÀÌ Àִ °æ¿ì Æúµå·Î °£ÁÖ)
  155.      * @param  String ¾Õ÷ºÎ
  156.      * @return String ¾÷·ÎµåµÈ ÆÄÀÏ °æ·Î¸í
  157.     */
  158.     function remote_Copy($remoteName$tar_folderfile="" $prefix =""{
  159.         $move_file "";
  160.         $filename $this->getName($remoteName);
  161.         if ($filename == null || $filename =="")
  162.             $filename "tmp.tmp";
  163.         $fileext ($this->isUploadable($filename)) $this->name2Ext($filename):"tmp";
  164.         $move_file $tar_folderfile $this->nameUnique($prefix"." $fileext;
  165.         if $move_file != "" && rainUtil::checkDir($this->base_root,$move_file)) {
  166.             if (!@copy($remoteName$this->base_root.$move_file))
  167.                 $move_file "";
  168.         else
  169.             $move_file "";
  170.         return $move_file;
  171.     }
  172.  
  173.     /**  
  174.      * Àü¼Û ¹ÞÀº multi part ¿¡¼­ Æ¯Á¤ µ¥ÀÌŸ¸¦ Æ¯Á¤ ¿µ¿ªÀ¸·Î ÀÌÀü
  175.      *
  176.      * @param  String ÆûÀ̸§
  177.      * @param  String ÀúÀåÇÒ À§Ä¡(¸¶Áö¸·¿¡ / ÀÌ Àִ °æ¿ì Æúµå·Î °£ÁÖ)
  178.      * @param  String ¾Õ÷ÀÚ
  179.      * @return String ¾÷·ÎµåµÈ ÆÄÀÏ °æ·Î¸í
  180.     */
  181.     function file_Copy($formName$tar_folderfile "" $prefix ""{
  182.         $fileName "";
  183.         $fileServer "";
  184.         $fileType "";
  185.         $move_file "";
  186.         $tar_file "";
  187.         $tar_folder "";
  188.         
  189.         if ($tar_folderfile == "" || $tar_folderfile == "."
  190.             $tar_folderfile "/";
  191.         if (is_uploaded_file($this->multi[$formName]['tmp_name'])) {
  192.             $fileServer $this->multi[$formName]['tmp_name'];
  193.             $fileName$this->multi[$formName]['name'];
  194.             $fileType$this->multi[$formName]['type'];
  195.             $fileSize $this->multi[$formName]['size'];
  196.  
  197.             if ($fileServer != ""{
  198.                 $tar_file basename($tar_folderfile);
  199.                 $tar_folder dirname($tar_folderfile);
  200.                 if ($tar_file == ""{
  201.                     $fileext ($this->isUploadable($fileName)) $this->name2Ext($fileName):"tmp";
  202.                     $move_file $tar_folder ."/" $this->nameUnique($prefix"." $fileext;
  203.                 else 
  204.                     $move_file $tar_folder ."/" $tar_file ;
  205.  
  206.                 if ($move_file != "" && rainUtil::checkDir($this->base_root,$move_file)) {
  207.                     if (!@move_uploaded_file($fileServer$this->base_root . $move_file)) 
  208.                         $move_file "";
  209.                 else 
  210.                     $move_file "";
  211.             else
  212.                 $move_file "";
  213.         else 
  214.             $move_file "";
  215.         return $move_file ;    
  216.     }
  217.  
  218.     /**  
  219.      * Æ¯Á¤ À̹ÌÁöÆÄÀÏÀÇ °¡·Î¼¼·Î Á¤º¸ °¡Á®¿À±â
  220.      *
  221.      * @param  String  À̹ÌÁö ÆÄÀϰæ·Î
  222.      * @return Array    [°¡·Î,¼¼·Î]
  223.     */
  224.     function getImageInfo($fileName{
  225.         if (!($img_info @getimagesize($this->base_root . $fileName))) 
  226.             $img_info Array(0,0);    
  227.         return $img_info;
  228.     }
  229.  
  230.     /**  
  231.      * Æ¯Á¤ ÆÄÀÏ ´Ù¿î·Îµå
  232.      *
  233.      * @param  String  ´Ù¿î·ÎµåÇÒ ÆÄÀÏ À§Ä¡
  234.      * @param  String  ´Ù¿î·Îµå¸í
  235.     */
  236.     function downLoad($fileName$downName ""{
  237.         if (file_exists($this->base_root . $fileName)) {
  238.             $fileSize =  filesize($this->base_root . $fileName);
  239.             if ($downName == ""
  240.                 $downName basename($fileName);
  241.             header("Content-Disposition: attachment;filename=".$downName)
  242.             header("Content-Length: ".$fileSize)
  243.             Header("Content-type: application/unknown");
  244.             $fd fopen($this->base_root . $fileName"r" );
  245.             @fpassthru$fd);
  246.             fclose($fd );
  247.         }
  248.     }
  249.  
  250.     /**  
  251.      * Æ¯Á¤ ÆÄÀÏ À̹ÌÁö ÇüÀ¸·Î ´Ù¿î·Îµå
  252.      *
  253.      * @param  String  ´Ù¿î·ÎµåÇÒ ÆÄÀÏ À§Ä¡
  254.     */
  255.     function sendImage($fileName{
  256.         $this->downLoad($fileName);
  257.     }
  258.  
  259.     /**  
  260.      * Æ¯Á¤ ÆÄÀÏ ³»¿ë Àбâ
  261.      *
  262.      * @param  String  ÀÐÀ» ÆÄÀÏ À̸§
  263.      * @return  String ÆÄÀÏ ³»¿ë
  264.     */
  265.     function fileLoader($fileName{
  266.         return implode(''@file($this->base_root . $fileName));
  267.     }
  268.  
  269.     /**  
  270.      * ÆÄÀÏ¸í¿¡¼­ È®ÀåÀÚ°¡Á®¿À±â
  271.      *
  272.      * @param  String  ÀÐÀ» ÆÄÀÏ À̸§
  273.      * @return  String ÆÄÀÏ È®ÀåÀÚ
  274.     */
  275.     function name2Ext($fileName{
  276.         $tar_file_extension "";
  277.         if ($fileName != ""{
  278.             if (ereg("\.([^\.]+)$"$fileName$tmp_reg)) 
  279.                 $tar_file_extension substr(strtolower($tmp_reg[1])04);
  280.             else 
  281.                 $tar_file_extension "tmp";
  282.         else 
  283.             $tar_file_extension "";
  284.         return $tar_file_extension;
  285.     }
  286.  
  287.     /**  
  288.      * À̹ÌÁö ÆÄÀÏ¿©ºÎ È®ÀÎ
  289.      *
  290.      * @param  String  ´ë»óÆÄÀÏ
  291.      * @return  Boolean À̹ÌÁöÆÄÀÏ¿©ºÎ
  292.     */
  293.     function isImage($fileName{
  294.         return (rainUtil::find("(gif|jpeg|jpg|png)$",$fileName)) ;
  295.     }
  296.  
  297.     /**  
  298.      * µ¿¿µ»ó ÆÄÀÏ¿©ºÎ È®ÀÎ
  299.      *
  300.      * @param  String ´ë»óÆÄÀÏ
  301.      * @return  Boolean µ¿¿µ»óÆÄÀÏ¿©ºÎ
  302.     */
  303.     function isMovie($fileName{
  304.         return rainUtil::find("(asf|mp3|pmeg|pmg|avi|wma|wmv|flv)$"$fileName);
  305.     }    
  306.  
  307.     /**  
  308.      * ÆÄÀÏÅ©±â¸¦ Àб⠽¬¿î ÇüÅ·Πº¯È¯
  309.      *
  310.      * @param  Int ÆÄÀÏÅ©±â
  311.      * @return  String ÆÄÀÏÅ©±â
  312.     */
  313.     function file_Size($file_size{
  314.         if ($file_size <= 
  315.             return "";
  316.         else if ($file_size >= 1024*1024
  317.             return number_format($file_size/(1024*1024),2" M";
  318.         else if ($file_size >= 1024
  319.             return number_format($file_size/1024,2" K";
  320.         else 
  321.             return number_format($file_size,2" B";
  322.     
  323.  
  324.     /**  
  325.      * ¹®ÀåÀÌ text ÀÎÁö html ÇüÀÎÁö¸¦ ÀÚµ¿ ÆÇ´ÜÈÄ À¥¿¡¼­ Àб⠰¡´ÉÇÑ ÇüÅ·Πº¯È¯
  326.      *
  327.      * @param  String  ´ë»ó ¹®ÀÚ
  328.      * @return  String º¯È¯µÈ¹®ÀÚ
  329.     */
  330.     function text2Html($s{
  331.         $s stripslashes(trim($s));
  332.         if (eregi("<br|<p",$s)) 
  333.             return $s;
  334.         else 
  335.             return nl2br($s);
  336.     }
  337.  
  338.     /**  
  339.      * Ã·ºÎµÈÆÄÀϠó¸®
  340.      *
  341.      * @param  String  Àû¿ë¸ðµå [DELETE : ÆÄÀÏ »èÁ¦, MOVE : ÆÄÀÏ ÀÌÀü]
  342.      * @param  String  ´ë»ó ÆÄÀϸí
  343.      * @param  String  ÀÌÀüÇÒ À§Ä¡
  344.     */
  345.     function treatUpload($mode$fileName$nfileName ""{
  346.         if ($mode == "DELETE"
  347.             rainUtil::deleteFile($fileName);
  348.         else if ($mode == "MOVE")
  349.             rainUtil::moveFile($fileName$nfileName);
  350.     }
  351.  
  352.     /**  
  353.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¸¶Áö¸· ¹®Àå
  354.      *
  355.      * @var String 
  356.     */
  357.     var $rainContents_html = '';
  358.  
  359.     /**  
  360.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¸¶Áö¸· ¹®Àå text
  361.      *
  362.      * @var String 
  363.     */
  364.     var $rainContents_text = '';
  365.  
  366.     /**  
  367.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¸¶Áö¸· ¹®Àå Å°¿öµå
  368.      *
  369.      * @var String 
  370.     */
  371.     var $rainContents_keyword = '';
  372.  
  373.     /**  
  374.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­ÀÇ ¼Ò½º
  375.      *
  376.      * @var String 
  377.     */
  378.     var $rainContents_sorce = '';
  379.  
  380.     /**  
  381.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­ÀÇ ¸ðµå(H: html, T: text, A: ÀÚµ¿¸ðµå)
  382.      *
  383.      * @var String 
  384.     */
  385.     var $rainContent_type = '';
  386.  
  387.     /**  
  388.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­ÀǠ÷ºÎÆÄÀÏ Á¤º¸
  389.      *
  390.      * @var Array 
  391.     */
  392.     var $rainAttach = Array();
  393.  
  394.     /**  
  395.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­ÀÇ ´ëÇ¥À̹ÌÁö °æ·Î
  396.      *
  397.      * @var String 
  398.     */
  399.     var $rainAttach_image = '';
  400.  
  401.     /**  
  402.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­¿¡ µ¿¿µ»ó Ã·ºÎ ¿©ºÎ[N: Ã·ºÎ¾ÈµÊ, Y: Ã·ºÎµÊ]
  403.      *
  404.      * @var String 
  405.     */
  406.     var $rainAttach_movie = "N";
  407.  
  408.     /**  
  409.      * ·¹Àο¡µðÅÍ ±¸ºÐÀÚ
  410.      *
  411.      * @var String 
  412.     */
  413.     var $boundary = '@4d4e81d3f9219886bcadb3dc9b503f82@';
  414.  
  415.     /**  
  416.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­ÀÇ Àüü Ã·ºÎ¿ë·®
  417.      *
  418.      * @var Int 
  419.     */
  420.     var $totalattach_size = 0;
  421.  
  422.     /**  
  423.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­ÀÇ º»¹®¾È¿¡ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀº ÆÄÀϿ뷮
  424.      *
  425.      * @var Int 
  426.     */
  427.     var $totalattach_unincludesize = 0;
  428.  
  429.     /**  
  430.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­ÀÇ Á¤¸®
  431.      *
  432.      * @param  String »õ·Î ÀÛ¼ºµÈ ³»¿ë
  433.      * @param  String ÀÌÀü ÆÄÀÏ ³»¿ë
  434.      * @return  String Á¤¸®µÈ ¹®¼­ ³»¿ë
  435.     */
  436.     function rainEditAttachSaveDelete($new_contents$old_contents ''{
  437.         if ($old_contents != ''{
  438.             $this->rainEditContents($old_contents);
  439.             $old_contents $this->rainContents_sorce
  440.             $old_attach $this->rainAttach;
  441.         else {
  442.             $old_attach array();
  443.         }
  444.         $this->rainEditContents($new_contents);
  445.         $new_contents $this->rainContents_sorce
  446.         $new_attach $this->rainAttach;
  447.         $new_type $this->rainContent_type;
  448.  
  449.         if (@count($old_attach0{
  450.             foreach($old_attach as $key => $val{
  451.                 if (!array_key_exists($key,  $new_attach)) 
  452.                     $this ->treatUpload('DELETE'$key);
  453.             }
  454.         }
  455.         $file_str '';
  456.         if (count($new_attach0{
  457.             foreach($new_attach as $key => $val{
  458.                 if (eregi("^junk/"$key)) {
  459.                     $new_key eregi_replace("^junk/"date("Y").'/'.date("m").'/'.date("d")'/'$key);
  460.                     $this ->treatUpload('MOVE'$key$new_key);
  461.                     $new_contents eregi_replace($key$new_key $new_contents);
  462.                     $key $new_key;
  463.                 }
  464.                 $file_str .= $key.'|'.$val['SIZE'].'|'.    $val['EXT'].'|'.$val['FILENAME'].'#';
  465.             }
  466.         }
  467.  
  468.         $contents =$new_contents.$this->boundary.$new_type.'*'.$file_str.$this->boundary;
  469.         $this->rainEditContents($contents);
  470.         return addslashes($contents);
  471.     }
  472.  
  473.     /**  
  474.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­ÀÇ ÆÄ½Ì
  475.      *
  476.      * @param  String ¿¡µðÅÍ ³»¿ë
  477.      * @param  Int Ç¥½Ã¿µ¿ª ÃÖ´ëÆø
  478.      * @return  String Á¤¸®µÈ ¹®¼­ ³»¿ë
  479.     */
  480.     function rainEditContents($contents$max_width 0{
  481.         
  482. //        $contents = stripslashes($contents);
  483.         if (eregi("(.*)".$this->boundary."(.*)".$this->boundary."(.*)"$contents$tmp_reg)) {
  484.             $contents $tmp_reg[1].$tmp_reg[3];
  485.             $contents_info_arr explode("*"$tmp_reg[2]);
  486.             if (count($contents_info_arr== 2{
  487.                 $contents_type $contents_info_arr[0];
  488.                 $contents_file $contents_info_arr[1];
  489.             else {
  490.                 $contents_type 'a';
  491.                 $contents_file $tmp_reg[1];
  492.             }
  493.         else {
  494.             $contents_type 'a';
  495.             $contents_file '';
  496.         }
  497.  
  498.         $this->rainContents_sorce = $contents;
  499.  
  500.         switch (strtolower($contents_type)) {
  501.             case "a" $contents $this->text2Html($contents)break;
  502.             case "h" {
  503.                 $contents eregi_replace("&amp;lt;""&lt;"$contents);
  504.                 $contents eregi_replace("&amp;gt;""&gt;"$contents);
  505.                 break;
  506.             }
  507.             default 
  508.                 $contents nl2br($contents)
  509.                 break;
  510.         
  511.         $file_list array();
  512.         $this->rainAttach_image = '';
  513.         $this->totalattach_unincludesize = 0;
  514.         $this->totalattach_size = 0;
  515.         $this->rainAttach_movie =="N";
  516.         $img_size_max 0;
  517.         
  518.         if ($contents_file != ''{
  519.             $contents_file_info explode("#"$contents_file);
  520.             foreach ($contents_file_info as $key => $val{
  521.                 if ($val != '' && count($file_info explode("|"$val)) 3{
  522.                     $file_server $file_info[0];
  523.                     if ($file_server != ''{
  524.                         $file_list[$file_server]['SERVER'$file_server ;
  525.                         $file_list[$file_server]['SIZE'=  $file_info[1];
  526.                         $file_list[$file_server]['EXT'=  $file_info[2];
  527.                         $file_list[$file_server]['FILENAME'=  $file_info[3];
  528.                         if ($this->isImage($file_server&&  $img_size_max $file_info[1]{
  529.                             $this->rainAttach_image = $val;
  530.                             $img_size_max $file_info[1];
  531.                         }
  532.                         if ($this->rainAttach_movie =="N" && $this->isMovie($file_info[2])) 
  533.                             $this->rainAttach_movie = "Y";
  534.                         if (eregi($file_server"$contents")) $file_list[$file_server]['INCLUDED'true;
  535.                         else {
  536.                             $file_list[$file_server]['INCLUDED'false;
  537.                             $this->totalattach_unincludesize += $file_list[$file_server]['SIZE'];
  538.                         }
  539.                         $this->totalattach_size += $file_list[$file_server]['SIZE'];
  540.                     }
  541.                 }
  542.             }
  543.         }
  544.         
  545.         if strtolower($contents_type== 'h' || strtolower($contents_type== 'a'
  546.             $contents preg_replace("/\<[^>]+blank.html[^>]*>/i"""$contents);
  547.             $contents preg_replace("/onload=[^ >]+/i"""$contents);
  548.             $contents preg_replace("/<script[^<]+<\/script>/i"""$contents);
  549.             $contents preg_replace("/onclick=[^ >]+/i"""$contents);
  550.             $contents preg_replace("/(\META[^>]+>)/i"""$contents);
  551.             $contents preg_replace("/(\<a [^>]+)target=[^ ]+([^>]*>)/i""\\1\\2"$contents);
  552.             $contents preg_replace("/(\<a [^>]+)onclick=[^ ]+([^>]*>)/i""\\1\\2"$contents);
  553.             $contents preg_replace("/(\<a [^>]+)href=.*javascript:[^ ]+([^>]*>)/i"""$contents);
  554.             $contents preg_replace("/\<a /i""<a target=_blank "$contents);
  555.         
  556.         
  557.         $this->rainContent_type = $contents_type;
  558.         $this->rainContents_html = $contents;
  559.         
  560.         $contents eregi_replace("<RIMGCAPTION>¡ã([^\n]+)</RIMGCAPTION>","#RAINIMGST\\1#RAINIMGEND",$contents);
  561.         
  562.         $contents_text strip_tags($contents);
  563.         $contents_text eregi_replace("&nbsp;"" ",$contents_text);
  564.         while (eregi("  ",$contents_text)) {
  565.             $contents_text eregi_replace("  "" ",$contents_text);
  566.         }
  567.         $this->rainContents_text = eregi_replace("#RAINIMGST([^\n]+)#RAINIMGEND","",$contents_text);
  568.         $this->rainContents_keyword = eregi_replace("#RAINIMGST([^\n]+)#RAINIMGEND","\\1 ",$contents_text);
  569.         
  570.         $this->rainAttach = $file_list;
  571.         return $contents;
  572.     }
  573.     
  574.     /**  
  575.      * ·¹Àο¡µðÅÍ¿¡¼­ ÀÛ¼ºµÈ ¹®¼­ÀǠ÷ºÎÆÄÀÏ ´Ù¿î·Îµå °æ·Î ÆÄ½Ì
  576.      *
  577.      * @param  Boolean º»¹®¾È¿¡ Æ÷ÇԵȠ³»¿ëµµ °°ÀÌ ÆÄ½ÌÇÒ°ÍÀÎÁö ¿©ºÎ
  578.      * @return  String Ã·ºÎÆÄÀÏ ´Ù¿î·Îµå °æ·Î
  579.     */
  580.     function rainAttachParse($show_include false{
  581.         $return_str '';
  582.         foreach ($this->rainAttach as $key => $val{
  583.             if ($show_include  || !$this->rainAttach[$key]['INCLUDED']{
  584.                 switch(strtolower($this->rainAttach[$key][EXT])) {
  585.                     case "gif" $file_icon 'sgif.gif'break;
  586.                     case "jpg" $file_icon 'sjpg.gif'break;
  587.                     case "jpeg" $file_icon 'sjpg.gif'break;
  588.                     case "bmp" $file_icon 'sbmp.gif'break;
  589.                     case "alz" $file_icon 'salz.gif'break;
  590.                     case "avi" $file_icon 'savi.gif'break;
  591.                     case "flv" $file_icon 'savi.gif'break;
  592.                     case "doc" $file_icon 'sdoc.gif'break;
  593.                     case "exe" $file_icon 'sexe.gif'break;
  594.                     case "htm" $file_icon 'shtm.gif'break;
  595.                     case "html" $file_icon 'shtm.gif'break;
  596.                     case "hwp" $file_icon 'shwp.gif'break;
  597.                     case "mdb" $file_icon 'smdb.gif'break;
  598.                     case "mp3" $file_icon 'smp3.gif'break;
  599.                     case "pdf" $file_icon 'spdf.gif'break;
  600.                     case "ppt" $file_icon 'sppt.gif'break;
  601.                     case "psd" $file_icon 'spsd.gif'break;
  602.                     case "tif" $file_icon 'stif.gif'break;
  603.                     case "txt" $file_icon 'stxt.gif'break;
  604.                     case "xls" $file_icon 'sxls.gif'break;
  605.                     case "zip" $file_icon 'szip.gif'break;
  606.                     case "tar" $file_icon 'szip.gif'break;
  607.                     case "tgz" $file_icon 'szip.gif'break;
  608.                     default $file_icon 'setc.gif'break;
  609.                 }
  610.                 $return_str .= "<img src='".rainUtil::getConf("url_images")."ext/".$file_icon."' align=absmiddle border=0 hspace=1><a href='"rainUtil::getConf("url_uploads"."download.html?fn=".$key."&dn=".urlencode($val['FILENAME'])."'>".$val['FILENAME']."(".$this->file_Size($val['SIZE']).")</a>&nbsp; ";
  611.             }
  612.         }
  613.         return rainUtil::addslashes($return_str);
  614.     }
  615.     
  616.     /**  
  617.      * Å±נÁ¦°Å±â
  618.      *
  619.      * @param  String ´ë»ó ¹®ÀÚ
  620.      * @return  String Å±װ¡ Á¦°ÅµÈ ¹®ÀÚ
  621.     */
  622.     function stripTags($text{
  623.           $text strip_tags($text);
  624.           return rainUtil::addslashes(str_replace(Array("  ","\r","\n"),Array(" ",""," "),$text));
  625.     }
  626. }
  627.  
  628. ?>

Documentation generated on Mon, 17 Mar 2008 12:17:46 +0900 by phpDocumentor 1.4.0a2 | Copyright 2005 cafen.net