bludit/kernel/helpers/text.class.php

185 lines
4.2 KiB
PHP
Raw Normal View History

2015-03-27 02:00:01 +01:00
<?php defined('BLUDIT') or die('Bludit CMS.');
2015-03-08 18:02:59 +01:00
2015-05-31 03:06:55 +02:00
class Text {
2015-03-08 18:02:59 +01:00
2015-06-29 04:51:48 +02:00
public static function addSlashes($string, $begin=true, $end=true)
2015-06-26 06:31:53 +02:00
{
if($begin) {
2015-06-29 04:51:48 +02:00
$string = '/' . ltrim($string, '/');
2015-06-26 06:31:53 +02:00
}
if($end) {
2015-06-29 04:51:48 +02:00
$string = rtrim($string, '/') . '/';
2015-06-26 06:31:53 +02:00
}
2015-06-29 04:51:48 +02:00
if($string=='//') {
2015-06-26 06:31:53 +02:00
return '/';
}
2015-06-29 04:51:48 +02:00
return $string;
2015-06-26 06:31:53 +02:00
}
2015-05-05 03:00:01 +02:00
public static function endsWith($string, $endsString)
{
$endsPosition = (-1)*self::length($endsString);
if(MB_STRING) {
return( mb_substr($string, $endsPosition)===$endsString );
}
return( substr($string, $endsPosition)===$endsString );
}
public static function endsWithNumeric($string)
{
$endsPosition = (-1)*self::length($string);
if(MB_STRING) {
return( is_numeric(mb_substr($string, -1, 1)) );
}
return( is_numeric(substr($string, -1, 1)) );
}
public static function randomText($length)
{
$characteres = "1234567890abcdefghijklmnopqrstuvwxyz!@#%^&*";
$text = '';
for($i=0; $i<$length; $i++) {
$text .= $characteres{rand(0,41)};
}
return $text;
}
2015-08-07 19:59:21 +02:00
/*
2015-06-29 04:51:48 +02:00
public static function cleanUrl($string, $separator='-')
2015-05-05 03:00:01 +02:00
{
2015-05-15 00:07:45 +02:00
// Delete characters
2015-06-29 04:51:48 +02:00
$string = str_replace(array("", "", "!", "*", "&#039;", "&quot;", "(", ")", ";", ":", "@", "&amp", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]", "|"),'',$string);
$string = preg_replace('![^\\pL\d]+!u', $separator, $string);
2015-05-15 00:07:45 +02:00
// Remove spaces
2015-06-29 04:51:48 +02:00
$string = str_replace(' ',$separator, $string);
2015-05-15 00:07:45 +02:00
//remove any additional characters that might appear after translit
2015-06-29 04:51:48 +02:00
//$string = preg_replace('![^-\w]+!', '', $string);
2015-05-15 00:07:45 +02:00
// Replace multiple dashes
2015-06-29 04:51:48 +02:00
$string = preg_replace('/-{2,}/', $separator, $string);
2015-05-15 00:07:45 +02:00
// Make a string lowercase
2015-06-29 04:51:48 +02:00
$string = self::lowercase($string);
2015-05-15 00:07:45 +02:00
2015-06-29 04:51:48 +02:00
return $string;
2015-05-05 03:00:01 +02:00
}
2015-08-07 19:59:21 +02:00
*/
public static function cleanUrl($string, $separator='-')
{
if(function_exists('iconv')) {
$string = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
}
$string = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $string);
$string = trim($string, '-');
$string = self::lowercase($string);
$string = preg_replace("/[\/_|+ -]+/", $separator, $string);
return $string;
}
2015-05-05 03:00:01 +02:00
2015-03-08 18:02:59 +01:00
// Replace all occurrences of the search string with the replacement string.
public static function replace($search, $replace, $string)
{
return str_replace($search,$replace,$string);
}
// String to lowercase
2015-05-31 03:06:55 +02:00
public static function lowercase($string, $encoding='UTF-8')
2015-03-08 18:02:59 +01:00
{
2015-05-31 03:06:55 +02:00
if(MB_STRING) {
return mb_strtolower($string, $encoding);
}
2015-03-08 18:02:59 +01:00
return strtolower($string);
}
2015-05-31 03:06:55 +02:00
// Make a string's first character uppercase
public static function firstCharUp($string, $encoding='UTF-8')
{
// Thanks http://stackoverflow.com/questions/2517947/ucfirst-function-for-multibyte-character-encodings
if(MB_STRING)
{
$strlen = mb_strlen($string, $encoding);
$firstChar = mb_substr($string, 0, 1, $encoding);
$then = mb_substr($string, 1, $strlen - 1, $encoding);
return mb_strtoupper($firstChar, $encoding).$then;
}
return ucfirst($string);
}
2015-05-05 03:00:01 +02:00
// Find position of first occurrence of substring in a string.
2015-03-08 18:02:59 +01:00
public static function strpos($string, $substring)
{
if(MB_STRING)
return mb_strpos($string, $substring, 0, 'UTF-8');
return strpos($string, $substring);
2015-05-05 03:00:01 +02:00
}
2015-03-08 18:02:59 +01:00
2015-05-05 03:00:01 +02:00
// Returns the portion of string specified by the start and length parameters.
public static function cut($string, $start, $length)
2015-03-08 18:02:59 +01:00
{
2015-05-07 03:00:01 +02:00
if(MB_STRING) {
$cut = mb_substr($string, $start, $length, 'UTF-8');
}
else {
$cut = substr($string, $start, $length);
}
if(empty($cut)) {
return '';
}
return $cut;
2015-03-08 18:02:59 +01:00
}
// Return string length
public static function length($string)
{
if(MB_STRING)
return mb_strlen($string, 'UTF-8');
return strlen($string);
2015-05-05 03:00:01 +02:00
}
2015-03-08 18:02:59 +01:00
2015-03-27 02:00:01 +01:00
public static function isEmpty($string)
{
$string = trim($string);
if(empty($string))
return true;
return false;
}
2015-06-29 04:51:48 +02:00
public static function isNotEmpty($string)
2015-03-08 18:02:59 +01:00
{
2015-06-29 04:51:48 +02:00
return !self::isEmpty($string);
2015-03-08 18:02:59 +01:00
}
2015-07-24 05:28:25 +02:00
public static function imgRel2Abs($string, $base)
{
2015-08-22 18:33:33 +02:00
return preg_replace('/(?!code).(src)="([^:"]*)(?:")/', "$1=\"$base$2\"", $string);
}
public static function pre2htmlentities($string)
{
return preg_replace_callback('/<pre.*?><code(.*?)>(.*?)<\/code><\/pre>/imsu',
create_function('$input', 'return "<pre><code $input[1]>".htmlentities($input[2])."</code></pre>";'),
$string);
2015-07-24 05:28:25 +02:00
}
2015-03-08 18:02:59 +01:00
}