- <?php
- /**
- * <b>Utility Class : File Manipulation & Creation</b><br />
- * A collection of utility functions for working with files.
- * Creation: PDFs and Images
- * Manipulation: Gets URLs and Gathers File Sizes
- * @author Kristen O'Brien <kristen_paristemi-com>
- * @copyright Copyright 2004, Kristen O'Brien
- * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- * @link http://www.paristemi.com Paristemi Main Site
- * @package paristemi
- * @subpackage paristemi_util
- * @since Build 0.7
- * @version Build 0.7
- * @filesource
- */
- /**
- * Include the constants file and all of the files in the include list
- */
- if(ltrim(dirname($_SERVER['SCRIPT_FILENAME'])) == "" || !file_exists($_SERVER['DOCUMENT_ROOT']."/constants.php")) {
- if(!file_exists("../constants.php")) { require_once("../public_html/constants.php"); }
- else { require_once("../constants.php"); }
- }
- else { require_once($_SERVER['DOCUMENT_ROOT']."/constants.php"); }
- if($SHOW_PDF_DL) { require_once($SERVER_DIRECTORY.$INCLUDE_PATH.$PDF_CLASS); }
-
- /**
- * Utility Class : File Manipulation & Creation
- * A collection of utility functions for working with files.
- * Creation: PDFs and Images
- * Manipulation: Gets URLs and Gathers File Sizes
- * @author Kristen O'Brien <kristen_paristemi-com>
- * @copyright Copyright © 2004, Kristen O'Brien
- * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- * @link http://www.paristemi.com Paristemi Main Site
- * @package paristemi
- * @subpackage paristemi_util
- * @since Build 0.7
- * @version Build 0.7
- * @filesource
- */
- class UtilFiles {
- // Utilities for file manipulation/creation
-
- function PreparePDFString($string) {
- return
- str_replace('<a href="','<c:alink:',
- str_replace('" target="_blank','',
- str_replace('">','>',
- str_replace('</a>','</c:alink>',
- str_replace("<br />","",
- str_replace(" "," ",
- str_replace("<span class=\"filesize\"","",
- str_replace("<span class=\"speaker\">","<b><i>",
- str_replace("</span>","</b></i>",
- str_replace("</em>","</i>",
- str_replace("<em>","<i>",$string)))))))))));
-
- }
-
- function CreatePDF($title,$text,$footer,$sublink,$font="Helvetica.afm") {
- $pdf =& new Cezpdf();
- $pdf->selectFont($GLOBALS['SERVER_DIRECTORY'].$GLOBALS['INCLUDE_PATH']
- .$GLOBALS['PDF_FONT_DIR'].$font);
- $pdf->ezText('',14);
- $pdf->ezText(UtilFiles::PreparePDFString($title),16);
- $pdf->ezText('',14);
- $pdf->ezText(UtilFiles::PreparePDFString($text),12);
- $pdf->ezText('',20);
- $pdf->ezText(UtilFiles::PreparePDFString($footer),12);
- $pdf->ezText('',20);
- $pdf->ezText($GLOBALS['CHURCH_NAME'],14);
- $pdf->ezText('<c:alink:'.$GLOBALS['HTTP_DOCUMENT_ROOT'].'>'.
- $GLOBALS['HTTP_DOCUMENT_ROOT'].'</c:alink>',14);
- $pdf->ezText('(<c:alink:'.trim($sublink).'>'.trim($sublink).'</c:alink>)',10);
- $pdf->ezStream();
- }
-
- function createImageText($id,$area,$height=20,$width=200,$bgcolor="255,255,255",
- $textcolor="0,0,255",$font=2,$x=2,$y=2) {
- $gdinfo = gd_info();
- if (isset($gdinfo['GIF Support'])) {
- if($gdinfo['GIF Support']) {
- return '<img src="'.$GLOBALS['HTTP_DOCUMENT_ROOT'].
- $GLOBALS['INCLUDE_PATH'].$GLOBALS['MAKE_IMAGE_INCLUDE'].
- '?imgtype=gif&id='.$id.'&area='.
- $area.'&width='.$width.'&height='.$height.'&bgcolor='.$bgcolor.
- '&textcolor='.$textcolor.'&font='.$font.'&x='.$x.'&y='.$y.'">';
- }
- }
- else if(isset($gdinfo['JPG Support'])) {
- if($gdinfo['JPG Support']) {
- return '<img src="'.$GLOBALS['HTTP_DOCUMENT_ROOT'].
- $GLOBALS['INCLUDE_PATH'].$GLOBALS['MAKE_IMAGE_INCLUDE'].
- '?imgtype=jpg&id='.$id.'&area='.
- $area.'&width='.$width.'&height='.$height.'&bgcolor='.$bgcolor.
- '&textcolor='.$textcolor.'&font='.$font.'&x='.$x.'&y='.$y.'">';
- }
- }
- else if($gdinfo['PNG Support']) {
- if($gdinfo['PNG Support']) {
- return '<img src="'.$GLOBALS['HTTP_DOCUMENT_ROOT'].
- $GLOBALS['INCLUDE_PATH'].$GLOBALS['MAKE_IMAGE_INCLUDE'].
- '?imgtype=png&id='.$id.'&area='.
- $area.'&width='.$width.'&height='.$height.'&bgcolor='.$bgcolor.
- '&textcolor='.$textcolor.'&font='.$font.'&x='.$x.'&y='.$y.'">';
- }
- }
- else { return null; }
- }
-
- // From dave at birko dot cjb dot net (PHP Filesize Comment)
-
- function fsize($size) {
- $a = array("B","KB","MB","GB","TB","PB"); $pos = 0;
- while ($size >= 1024) { $size /= 1024; $pos++; }
- return round($size,2)." ".$a[$pos];
- }
-
- function ParseServerFromURL($url) {
- $url = substr($url,strpos($url,"http://")+7,strlen($url));
- return substr($url,0,strpos($url,"/"));
- }
-
- function ParseFileFromURL($url) {
- $url = substr($url,strpos($url,"http://")+7,strlen($url));
- return substr($url,strpos($url,"/"),strlen($url));
- }
-
- //socket code from AlCapone (http://forums.devshed.com/member.php?action=getinfo&userid=12092)
-
- function GetFilesize($file,$usebytes=0) {
- if(strcmp(UtilFiles::ParseServerFromURL($file),$GLOBALS['SERVER_NAME']) == 0) {
- $file = UtilFiles::ParseFileFromURL($file);
- $file = $GLOBALS['SERVER_DIRECTORY'].substr($file,1,strlen($file));
- if(file_exists($file)) {
- if($usebytes) { return filesize($file); }
- else { return UtilFiles::fsize(filesize($file)); }
- }
- else { return null; }
- }
- else {
- $fsize = 0;
- $fp = fsockopen(UtilFiles::ParseServerFromURL($file),80,$errno,$errstr,30);
- if($fp) {
- fputs($fp,"HEAD ".UtilFiles::ParseFileFromURL($file)." HTTP/1.0\r\n\r\n");
- while(!feof($fp)) {
- $line=fgets($fp,128);
- if(eregi("^Content-Length: ([0-9]+)",$line,$a)) { $fsize=$a[1]; }
- }
- fclose($fp);
- }
- if($usebytes) { return $fsize; }
- else { return UtilFiles::fsize($fsize); }
- }
- }
- }
-
- ?>