Code Search for Developers
 
 
  

string.php from ECP (EliteCore Project) at Krugle


Show string.php syntax highlighted

<?php

require_once('ext/Text_Diff/Diff.php');
require_once('ext/Text_Diff/Diff/Renderer/inline.php');

/**
 * Additional String methods.
 *
 * @package String
 * @author Luke Satin <cyberluk@seznam.cz>
 * @version 0.9.6.3
 */
class String {
	private static $randomWordsCache = array ();
	private static $letters = array (
		"a",
		"a",
		"c",
		"d",
		"e",
		"e",
		"i",
		"l",
		"l",
		"n",
		"o",
		"o",
		"o",
		"o",
		"r",
		"s",
		"t",
		"u",
		"u",
		"u",
		"u",
		"y",
		"r",
		"z",
		"A",
		"A",
		"C",
		"D",
		"E",
		"E",
		"I",
		"L",
		"L",
		"N",
		"O",
		"O",
		"O",
		"O",
		"R",
		"S",
		"T",
		"U",
		"U",
		"U",
		"U",
		"Y",
		"R",
		"Z"
	);
	public static function createRandomWord($length = 10) {
		for ($word = ""; strlen($word) < $length;) {
			$i = mt_rand(0, sizeof(self :: $letters) - 1);
			$word .= self :: $letters[$i];
		}
		if (in_array($word, self :: $randomWordsCache))
			$word = self :: createRandomWord($length);
		self :: $randomWordsCache[] = $word;
		return $word;
	}
	/**
	* Static method, which provides escape string function with additional
	* properties (actual character encoding safe escaping)
	*
	* If $input parameter is an array, it will escape whole array. If it is a
	* string, it will return a classic escaped string.
	*
	* @param string|array $input
	* @return string|array
	*/
	public static function Escape($input) {
		if (!get_magic_quotes_gpc()) {
			if (is_array($input)) {
				for ($i = 0; $i < sizeof($input); $i++) {
					$input[$i] = addslashes($input[$i]);
				}
			} else {
				$input = addslashes($input);
			}
		}
		return $input;
	}
	public static function Unescape($input) {
		if (!get_magic_quotes_gpc()) {
			if (is_array($input)) {
				for ($i = 0; $i < sizeof($input); $i++) {
					$input[$i] = stripslashes($input[$i]);
				}
			} else {
				$input = stripslashes($input);
			}
		}
		return $input;
	}
	/**
	 * Converts given email address to address/format specified by XCS
	 * configuration.
	 *
	 * @param string $email
	 * @return string
	 */
	public static function parseEmail($email) {
		$retval = $email;
		$address = explode("@", $email);
		if (sizeof($address) == 2)
			$retval = $address[0] . "[ at ]" . $address[1];

		return $retval;
	}
	/**
	* Removes diacritics(national characters) from given string. Useful for
	* search optimalization and TEXT2URL converting.
	*
	* @param string $text
	* @return string
	*/
	public static function removeDiacritics($text) {
		$diacritic = array (
			"á",
			"ä",
			"č",
			"ď",
			"é",
			"Ä›",
			"í",
			"ĺ",
			"ľ",
			"ň",
			"ó",
			"ô",
			"Å‘",
			"ö",
			"Å•",
			"Å¡",
			"Å¥",
			"ú",
			"ů",
			"ű",
			"ü",
			"ý",
			"Å™",
			"ž",
			"Á",
			"Ä",
			"Č",
			"ÄŽ",
			"É",
			"Äš",
			"Í",
			"Ĺ",
			"Ľ",
			"Ň",
			"Ó",
			"Ô",
			"Ő",
			"Ö",
			"Å”",
			"Å ",
			"Ť",
			"Ú",
			"Å®",
			"Ű",
			"Ü",
			"Ý",
			"Ř",
			"Ž"
		);
		$removed = array (
			"a",
			"a",
			"c",
			"d",
			"e",
			"e",
			"i",
			"l",
			"l",
			"n",
			"o",
			"o",
			"o",
			"o",
			"r",
			"s",
			"t",
			"u",
			"u",
			"u",
			"u",
			"y",
			"r",
			"z",
			"A",
			"A",
			"C",
			"D",
			"E",
			"E",
			"I",
			"L",
			"L",
			"N",
			"O",
			"O",
			"O",
			"O",
			"R",
			"S",
			"T",
			"U",
			"U",
			"U",
			"U",
			"Y",
			"R",
			"Z"
		);
		return str_replace($diacritic, $removed, $text);
	}
	public static function encodeFilename($filename) {
		$text = trim($filename);
		$text = preg_replace('/\&(.*?);/', '', $text);
		$text = strip_tags($text);
		$text = self :: removeDiacritics($text);
		$text = strtolower($text);
		$match = array ();
		preg_match_all('/[a-zA-Z0-9\.]+/', $text, $match);
		$text = implode("-", $match[0]);
		return $text;
	}
	public static function removeSpecialChars($string, $spacer = ' ') {
		$string = strip_tags(trim($string));
		$string = strtolower(self :: removeDiacritics($string));
		$searched = array (
			"_",
			":",
			",",
			"-",
			"(",
			"%",
			"&",
			"@",
			")",
			";",
			"!",
			"$",
			">",
			"<",
			"?"
		);
		return str_replace($searched, $spacer, $string);
	}
	public static function formatFilesize($bytes) {
		$kilobytes = $bytes / 1024;
		if ($kilobytes > 1024)
			$megabytes = $kilobytes / 1024;
		else
			return ceil($kilobytes) . " kB";
		if ($megabytes > 1024)
			$gigabytes = $megabytes / 1024;
		else
			return ceil($megabytes) . " MB";
		if ($gigabytes > 1024)
			$terrabytes = $gigabytes / 1024;
		else
			return ceil($gigabytes) . " GB";
		return ceil($terrabytes) . " TB";
	}

	public static function getFileType($filename) {
		$filename = explode(".", $filename);
		return $filename[sizeof($filename) - 1];
	}
	/**
	* Converts a string to right format so it can be used as URL name. Useful
	* for rewritting URLs. For example: it replaces all spaces to '-'
	* character.
	*
	* @param string $text My New Article!
	* @return string my-new-article
	*/
	public static function TEXT2URL($text) {
		$text = trim($text);
		$text = preg_replace('/\&(.*?);/', '', $text);
		$text = strip_tags($text);
		$text = self :: removeDiacritics($text);
		$text = strtolower($text);
		$match = array ();
		preg_match_all('/[a-zA-Z0-9]+/', $text, $match);
		$text = implode("-", $match[0]);
		return $text;
	}
	public static function generateKeywords($keywords) {
		$text = trim($keywords);
		$text = preg_replace('/\&(.*?);/', '', $text);
		$text = strip_tags($text);
		$text = self :: removeDiacritics($text);
		$text = strtolower($text);
		$match = array ();
		preg_match_all('/[a-zA-Z0-9]+/', $text, $match);
		$text = implode(" ", $match[0]);
		return $text;
	}
	public static function TITLE2FILENAME($text) {
		$text = trim($text);
		$text = preg_replace('/\&(.*?);/', '', $text);
		$text = strip_tags($text);
		$text = self :: removeDiacritics($text);
		$text = strtolower($text);
		$match = array ();
		preg_match_all('/[a-zA-Z0-9]+/', $text, $match);
		$text = implode("_", $match[0]);
		return $text;
	}
	/**
	 * This method returns a substring of a given string.
	 *
	 * It will break the string in desired chars.For example: you can break your
	 * string in all white spaces and get the desired string, which will have
	 * not cutted words - useful for cutting articles/headings.
	 *
	 * @param string $text Original string
	 * @param int $lim Desired string length
	 * @param string $break A character that will be used for breaking given strings.
	 * @param string $tail A string that will be placed at the end of cutted string - eg. "..." or hypertext link,etc.
	 * @return string Returns new value.
	 */
	public static function Shorten($text, $lim, $break, $tail) {
		$text = strip_tags($text);
		$text = split("$break", $text);

		if (strlen(implode("$break", $text)) >= $lim) {
			$i = 0;
			$add_str = "";
			while ($i <= count($text)) {
				$add_str = $text[$i];
				$out[] = $add_str;
				if (strlen(implode("$break", $out)) >= $lim -strlen($break))
					break;
				$add_str = "";
				$i++;
			}
			$text = implode("$break", $out);
			if (substr($text, 0, -strlen($break)) == $break)
				$text = substr($text, 0, -strlen($break));
			$text = "$text$tail";
		} else {
			$text = implode("$break", $text);
		}
		return $text;
	}
	public static function CountWords($html) {
		$string = strip_tags($html);
		$searched = array (
			".",
			",",
			":",
			"-",
			"_"
		);
		$removed = array (
			" ",
			" ",
			" ",
			" ",
			" "
		);
		$string = str_replace($searched, $removed, $string);
		$words = explode(" ", $string);
		$word_num = 0;
		foreach ($words as $word) {
			//if (strlen($word) > 2)
			$word_num++;
		}
		return $word_num;
	}
	public static function addProtocol($string, $protocol = 'http://') {
		if (strpos($string, $protocol) === false) {
			return $protocol . $string;
		} else
			return $string;
	}
	public static function addURLDelimiter($url) {
		if (strpos($url, "?") === false) {
			$url .= "?";
		} else {
			$url .= "&amp;";
		}
		return $url;
	}
	public static function clearLeadingZeros($number) {
		$pos = strpos((string) $number, '0');
		if ($pos === true) {
			$number = substr($number, 1);

		}
		return (int) $number;
	}
	public static function cleanXHTML($invalidHTML) {
		if (!extension_loaded('tidy'))
			return $invalidHTML;

		$tidy = new tidy;
		$config = array (
			'clean' => true,
			'drop-proprietary-attributes' => true,
			'show-body-only' => true,
			'output-xhtml' => true,
			'indent' => true,
			'quiet' => true,
			'write-back' => true,
			'wrap' => 0
		);
		$tidy->parseString($invalidHTML, $config, 'UTF8');
		$tidy->CleanRepair();

		return $tidy;
	}
	public static function cleanXML($invalidXHTML) {
		if (!extension_loaded('tidy'))
			return $invalidXHTML;

		$tidy = new tidy;
		$config = array (
			'clean' => false,
			'show-body-only' => true,
			'output-xhtml' => true,
			'quiet' => true,
			'numeric-entities' => true
		);
		$tidy->parseString($invalidXHTML, $config, 'UTF8');
		$tidy->CleanRepair();

		return $tidy;
	}
	public static function cleanXHTMLDocument($invalidHTML) {
		if (!extension_loaded('tidy'))
			return $invalidHTML;

		$tidy = new tidy;
		$config = array (
			'clean' => false,
			'drop-proprietary-attributes' => false,
			'output-xhtml' => true,
			'show-body-only' => false,
			'indent' => true,
			'quiet' => true,
			'write-back' => true,
			'wrap' => 0
		);
		$tidy->parseString($invalidHTML, $config, 'UTF8');
		$tidy->CleanRepair();

		return $tidy;
	}
	public static function Serialize($string) {
		if (isset ($string))
			return serialize($string);
		else
			return NULL;
	}
	public function isRude($text) {
		$rude_words = i18n :: TranslateDEPRECATED("ban", "rude_words");
		$rude_words = explode(",", $rude_words);
		foreach ($rude_words as $rude) {
			if (strpos($text, $rude)) {
				return true;
			}
		}
		return false;
	}
}
?>



See more files for this project here

ECP (EliteCore Project)

EliteCore Project is a PHP5.1/Javascript/AJAX/XHTML/CSS framework for creating WEB 2.0 applications and services.The basic open-source instalation can be also used as an interactive personal page or BLOG.This project uses the latest features available.

Project homepage: http://sourceforge.net/projects/elitecore
Programming language(s): JavaScript,PHP,XML
License: cpl

  debug/
    content.php
  exceptions/
    ajaxflush.php
    nomodule.php
    undefineddata.php
  interface/
    encryption.php
    form.php
    module_class.php
    session_interface.php
  renderers/
    default.php
  sql/
    mysql.php
    mysqli.php
  themes/
    ECP/
      accept.png
      add.png
      alt_star.gif
      anchor.png
      arrow_refresh.png
      asterisk_orange.png
      asterisk_yellow.png
      attach.png
      back.png
      cog_error.png
      cog_go.png
      comment.png
      comment_add.png
      comment_delete.png
      comment_edit.png
      comments.png
      comments_add.png
      comments_delete.png
      control_play_blue.png
      drive.png
      gnome-fs-directory.png
      gnome-mime-audio.png
      layers.png
      layout.png
      layout_add.png
      layout_content.png
      layout_delete.png
      layout_edit.png
      layout_error.png
      layout_header.png
      layout_link.png
      layout_sidebar.png
      lightbulb.png
      lightbulb_add.png
      lightbulb_delete.png
      lightbulb_off.png
      lightning.png
      lightning_add.png
      lightning_delete.png
      lightning_go.png
      link.png
      link_add.png
      link_break.png
      link_delete.png
      link_edit.png
      link_error.png
      link_go.png
      lock.png
      lock_add.png
      lock_break.png
      lock_delete.png
      lock_edit.png
      lock_go.png
      lock_open.png
      newspaper.png
      newspaper_add.png
      newspaper_delete.png
      newspaper_go.png
      newspaper_link.png
      note.gif
      note.png
      note_add.png
      note_delete.gif
      note_delete.png
      note_edit.png
      note_error.png
      note_go.png
      note_new.gif
      overlays.png
      package.png
      package_add.png
      package_delete.png
      package_go.png
      package_green.png
      package_link.png
      page.gif
      page.png
      page_add.png
      page_attach.png
      page_code.png
      page_copy.png
      page_delete.png
      page_edit.png
      page_error.png
      page_excel.png
      page_find.png
      page_gear.png
      page_go.png
      page_green.png
      page_key.png
      page_lightning.png
      page_link.png
      page_paintbrush.png
      page_paste.png
      page_red.png
      page_refresh.png
      page_save.png
      page_white.png
      pencil.png
      pencil_add.png
      pencil_delete.png
      pencil_go.png
      photo.png
      photo_add.png
      photo_delete.png
      photo_link.png
      photos.png
      picture.png
      picture_add.png
      picture_delete.png
      picture_edit.png
      picture_empty.png
      picture_error.png
      picture_go.png
      picture_key.png
      picture_link.png
      picture_save.png
      pictures.png
      plugin.png
      plugin_add.png
      plugin_delete.png
      plugin_disabled.png
      plugin_edit.png
      plugin_error.png
      plugin_go.png
      plugin_link.png
      report.png
      report_add.png
      report_delete.png
      report_disk.png
      report_edit.png
      report_go.png
      report_key.png
      report_link.png
      report_magnify.png
      report_picture.png
      report_user.png
      report_word.png
      script.png
      script_add.png
      script_code.png
      script_code_red.png
      script_delete.png
      script_edit.png
      script_error.png
      script_gear.png
      script_go.png
      script_key.png
      script_lightning.png
      script_link.png
      script_palette.png
      script_save.png
      star.png
      star_rating.gif
      stop.png
      style.png
      text_align_center.png
      text_align_justify.png
      text_align_left.png
      text_align_right.png
      text_allcaps.png
      text_bold.png
      text_columns.png
      text_dropcaps.png
      text_heading_1.png
      text_heading_2.png
      text_heading_3.png
      text_heading_4.png
      text_heading_5.png
      text_heading_6.png
      text_horizontalrule.png
      text_indent.png
      text_indent_remove.png
      text_italic.png
      text_kerning.png
      text_letter_omega.png
      text_letterspacing.png
      text_linespacing.png
      text_list_bullets.png
      text_list_numbers.png
      text_lowercase.png
      text_padding_bottom.png
      text_padding_left.png
      text_padding_right.png
      text_padding_top.png
      text_replace.png
      text_signature.png
      text_smallcaps.png
      text_strikethrough.png
      text_subscript.png
      text_superscript.png
      text_underline.png
      text_uppercase.png
      textfield.png
      textfield_add.png
      textfield_delete.png
      textfield_key.png
      textfield_rename.png
      tux.png
      vert_star.gif
    ECP.xml
  Icon.php
  Location.php
  Module.php
  ModulesManager.php
  MusicTags.php
  Page.php
  XHTMLParser.php
  XMLForms.php
  ajax.php
  author.html
  cache.php
  config.php
  date.php
  db.php
  debug.php
  ecp-full.php
  ecp-mini.php
  engine.php
  events.php
  filesystem.php
  footer.html
  i18n.php
  mailer.php
  main.css
  mcrypt.php
  mime.php
  mod_rewrite.php
  perspective.php
  rc4.php
  reflection.php
  session_passport.php
  storage.php
  string.php
  template.php
  texy.php
  user.php
  user_cache.php
  wysiwyg_texy.php
  xhtml_form.php
  xtea.php