Beispiel #1
0
 public function __construct($https = false)
 {
     $root = mb_strrchr($_SERVER['PHP_SELF'], '/', true);
     if (isset($_SERVER['HTTPS']) || $https) {
         $prefix = 'https://';
     } else {
         $prefix = 'http://';
     }
     $this->setBaseUri($prefix . $_SERVER['HTTP_HOST'] . $root);
     $aPageParams = explode('/', $_SERVER['QUERY_STRING'], 2048);
     $this->setPage(array_shift($aPageParams));
     $tmpParamsObj = new stdClass();
     while (count($aPageParams)) {
         $sKey = strip_tags(rawurldecode(array_shift($aPageParams)));
         $sValue = strip_tags(rawurldecode(array_shift($aPageParams)));
         if (empty($sKey)) {
             continue;
         }
         if (strstr($sValue, ',')) {
             $sValue = explode(',', $sValue, 2048);
         }
         $tmpParamsObj->{$sKey} = $sValue;
     }
     $this->setPageParams($tmpParamsObj);
 }
Beispiel #2
0
	/**
	 * Copy an image uploaded with HTML form to the specified directory.
	 * In view scripts one should use something like <img src="{$fileBaseDir}/{@return}"/>
	 *
	 * @param string $paramName Parameter name as it passed by a form.
	 * @param string $fileBaseDir A base directory constant for the file (should be used in view scripts as prefix before $filePath from DB table).
	 * @return string New file's name.
	 * @throws CException 
	 */
	public static function uploadFile($paramName, $fileBaseDir)
	{
		if(empty($_FILES[AutoAdmin::INPUT_PREFIX]['tmp_name'][$paramName]) || !empty($_FILES[AutoAdmin::INPUT_PREFIX]['error'][$paramName]))
			throw new AAException(Yii::t('AutoAdmin.errors', 'An error occured with uploading of the file for field "{field}"', array('{field}'=>$paramName)));
		$uploadedFileName =& $_FILES[AutoAdmin::INPUT_PREFIX]['name'][$paramName];

		$newfname = '';
		$toDir = self::srcToPath($fileBaseDir);
		$newfname = mb_strtolower(mb_substr($uploadedFileName, 0, mb_strrpos($uploadedFileName, '.')));
		$newfname = AAHelperText::translite($newfname);
		$newfname = str_replace(' ', '_', $newfname);
		$newfname = preg_replace('/[^a-z\-\_0-9]/ui', '', $newfname);
		if(mb_strlen($newfname)>60)
			$newfname = mb_substr($newfname, 0, 60);
		$ext = mb_substr(mb_strrchr($uploadedFileName, '.'), 1);
		if(!is_dir($toDir))
		{
			if(!mkdir($toDir, 0777, true))
				throw new AAException(Yii::t('AutoAdmin.errors', 'The directory "{dirname}" cannot be created', array('{dirname}'=>$toDir)));
		}
		while(file_exists($toDir.DIRECTORY_SEPARATOR.$newfname.'.'.$ext))
			$newfname .= '_'.rand(0, 9);
		$newfname .= ".{$ext}";
		if(!copy($_FILES[AutoAdmin::INPUT_PREFIX]['tmp_name'][$paramName], $toDir.DIRECTORY_SEPARATOR.$newfname))
			throw new AAException(Yii::t('AutoAdmin.errors', 'The file ({filename}) cannot be copied', array('{filename}'=>$newfname)));
		return $newfname;
	}
	function copyImage($var, $uploadDir='/i/other')
	{
		$newFileName = '';
		$newFileName = mb_strtolower(mb_substr($_FILES[$var]['name'], 0, mb_strrpos($_FILES[$var]['name'], '.')));
		$newFileName = AAHelperText::translite($newFileName);
		$newFileName = str_replace(' ', '_', $newFileName);
		$newFileName = preg_replace('/[^a-z\-\_0-9]/ui', '', $newFileName);
		if(mb_strlen($newFileName)>60)
			$newFileName = mb_substr($newFileName, 0, 60);
		$ext = mb_strrchr($_FILES[$var]['name'], '.');
		$newFileName .= $ext;
		$fileLinkDir = $uploadDir;
		$targetPath = Yii::app()->basePath.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.Yii::app()->modules['autoadmin']['wwwDirName'].str_replace('/', DIRECTORY_SEPARATOR, $uploadDir);
		if(!is_dir($targetPath))
		{
			if(!mkdir($targetPath))
				throw new CHttpException(406, "Указанная в настройках директория [{$fileLinkDir}] не существует и не может быть создана.");
		}
		$targetPath .= DIRECTORY_SEPARATOR.$newFileName;
		if(!copy($_FILES[$var]['tmp_name'], $targetPath))
			throw new CHttpException(406, "Файл невозможно сохранить в указанной в настройках директории [{$fileLinkDir}]. Вероятнее всего, проблемы с правами.");
		if(!getimagesize($targetPath))
		{
			throw new CHttpException(406, "Загружаемый файл не является изображением допустимого формата.");
		}
		return $fileLinkDir.'/'.$newFileName;
	}
Beispiel #4
0
 /**
  * Метод возвращает последнее вхождение символа в строке
  *
  * @param string $string
  * @param string $charset
  * @return string
  *
  * @version 0.1 21.08.2011
  * @since 0.1
  * @author webmaxx <*****@*****.**>
  */
 public function strrchr($string, $charset = 'UTF-8')
 {
     if ($this->_functionExists('mb_strrchr')) {
         return mb_strrchr($string, $charset);
     } else {
         return strrchr($string);
     }
 }
/**
 * Returns language name
 *
 * @param string $tmplang Language code
 *
 * @return string
 */
function PMA_languageName($tmplang)
{
    $lang_name = ucfirst(mb_substr(mb_strrchr($tmplang[0], '|'), 1));
    // Include native name if non empty
    if (!empty($tmplang[2])) {
        $lang_name = $tmplang[2] . ' - ' . $lang_name;
    }
    return $lang_name;
}
 protected function buildDescription2($data)
 {
     if (!$this->ga_description2) {
         $text = "{KEYWORD:{$data}}";
         if (strlen($text) > 35) {
             if (mb_strlen($data, 'utf-8') > 25) {
                 $tmp = mb_substr($data, 0, 25, 'utf-8');
                 $tmp2 = mb_strrchr($tmp, ' ', true, 'utf-8');
                 $text = "{KEYWORD:" . mb_substr($data, 0, mb_strlen($tmp2, 'utf-8'), 'utf-8') . "}";
             }
         }
         $this->setDescription2($text);
     }
 }
Beispiel #7
0
 /**
  * Creates a DB command that can be used to execute this query.
  *
  * @param Connection $db the DB connection used to create the DB command.
  *                       If null, the DB connection returned by [[modelClass]] will be used.
  *
  * @return Command the created DB command instance.
  */
 public function createCommand($db = null)
 {
     /** @type ActiveRecord $modelClass */
     $modelClass = $this->modelClass;
     if ($db === null) {
         $db = $modelClass::getDb();
     }
     if ($this->from === null) {
         $this->from = $modelClass::modelName();
     }
     if ($this->searchModel === null) {
         $this->searchModel = mb_substr(mb_strrchr($this->modelClass, '\\'), 1) . 'Search';
     }
     return parent::createCommand($db);
 }
Beispiel #8
0
	public function printValue()
	{
		if($this->value)
		{
			$ext = mb_substr(mb_strrchr($this->value, '.'), 1);
			if(!$ext)
				$ext = '';
			$spanOptions = array('class'=>'file'.($ext ? " ext-{$ext}" : ''));
			if(in_array($ext, array('jpg', 'gif', 'png')))
				return CHtml::link($this->value, "{$this->options['directoryPath']}/{$this->value}", $spanOptions);
			else
				return CHtml::tag('span', $spanOptions, $this->value);
		}
		else
			return null;
	}
Beispiel #9
0
 function find($needle, $ignoreCase = false, $reverse = false)
 {
     if ($ignoreCase) {
         if ($reverse) {
             $this->__invar = mb_strrichr($this->__invar, $needle);
         } else {
             $this->__invar = mb_stristr($this->__invar, $needle);
         }
     } else {
         if ($reverse) {
             $this->__invar = mb_strrchr($this->__invar, $needle);
         } else {
             $this->__invar = mb_strstr($this->__invar, $needle);
         }
     }
     return $this;
 }
 protected function buildHeadline($data, $params)
 {
     if (mb_strlen($data, 'utf-8') > 25) {
         if (mb_strlen($data, 'utf-8') > 35) {
             $tmp = mb_substr($data, 0, 35, 'utf-8');
             $tmp2 = mb_strrchr($tmp, ' ', true, 'utf-8');
             $tmp2 = preg_replace("![0-9 ]+\$!", "", $tmp2);
         } else {
             $tmp2 = $data;
         }
         $this->setDescription1($tmp2);
         $this->setDescription2(mb_substr($text, mb_strlen($tmp2, 'utf-8')), 35, 'utf-8');
         $text = 'מחפשים ' . $params[0]['l_make'] . " " . $params[0]['l_model'];
         $this->setHeadline($text . "?");
     } else {
         $this->setHeadline($data);
     }
 }
 protected function buildHeadline($data, $params)
 {
     if (mb_strlen($data, 'utf-8') > 25) {
         if (mb_strlen($data, 'utf-8') > 35) {
             $tmp = mb_substr($data, 0, 35, 'utf-8');
             $tmp2 = mb_strrchr($tmp, ' ', true, 'utf-8');
             $tmp2 = preg_replace("![0-9 ]+\$!", "", $tmp2);
         } else {
             $tmp2 = $data;
         }
         $this->setDescription1($tmp2);
         $this->setDescription2(mb_substr($text, mb_strlen($tmp2, 'utf-8')), 35, 'utf-8');
         $text = 'מחפשים ' . $params['l_assetType'];
         if (mb_strlen($text . ($params['l_geo_city'] ? " ב" . $params['l_geo_city'] : ""), 'utf-8') < 26) {
             $text .= $params['l_geo_city'] ? " ב" . $params['l_geo_city'] : "";
         }
         $this->setHeadline($text . "?");
     } else {
         $this->setHeadline($data);
     }
 }
function PortalNotesFiles($file, &$PortalNotesFilesError)
{
    global $PortalNotesFilesPath;
    if (!$file || !is_uploaded_file($file['tmp_name'])) {
        //no file uploaded
        $PortalNotesFilesError = _('File not uploaded');
    }
    //Check the post_max_size & php_value upload_max_filesize values in the php.ini file
    //extensions white list
    $white_list = array('.doc', '.docx', '.txt', '.pdf', '.xls', '.xlsx', '.csv', '.jpg', '.jpeg', '.png', '.gif', '.zip', '.ppt', '.pptx', '.mp3', '.wav', '.avi', '.mp4', '.ogg');
    if (!in_array(mb_strtolower(mb_strrchr($file['name'], '.')), $white_list)) {
        $PortalNotesFilesError = _('Unauthorized file attached extension') . ': ' . mb_strtolower(mb_strrchr($file['name'], '.'));
    }
    if ($file['size'] > 10240000) {
        // file size must be < 10Mb
        $PortalNotesFilesError = _('File attached size') . ' > 10Mb: ' . $file['size'] / 1024 / 1024 . 'Mb';
    }
    //if current sYear folder doesnt exist, create it!
    if (!is_dir($PortalNotesFilesPath)) {
        if (!mkdir($PortalNotesFilesPath)) {
            $PortalNotesFilesError = _('Folder not created') . ': ' . $PortalNotesFilesPath;
        }
    }
    if (!is_writable($PortalNotesFilesPath)) {
        $PortalNotesFilesError = _('Folder not writable') . ': ' . $PortalNotesFilesPath;
    }
    //see PHP user rights
    if (!empty($PortalNotesFilesError)) {
        return '';
    }
    //store file
    $file_name = str_replace(' ', '_', trim($file['name']));
    //sanitize name
    $file_name = no_accents($file_name);
    $new_file = $PortalNotesFilesPath . $file_name;
    if (move_uploaded_file($file['tmp_name'], $new_file)) {
        return $new_file;
    }
    return '';
}
Beispiel #13
0
 /**
  * File extension.
  *
  * @since 150424 Initial release.
  *
  * @param string $path A filesystem path.
  *
  * @return string File extension; or empty string.
  */
 public function __invoke(string $path) : string
 {
     if (!$path) {
         return '';
         // Not possible.
     }
     if (mb_substr($path, -1) === '/') {
         return '';
         // Directory.
     }
     if (!($basename = basename($path))) {
         return '';
         // Nothing.
     }
     if (!($ext = mb_strrchr($basename, '.'))) {
         return '';
         // Nothing.
     }
     $ext = $this->c::mbLTrim($ext, '.');
     $ext = mb_strtolower($ext);
     return $ext;
 }
Beispiel #14
0
 public static function whoCalledMe($deep = 1, $back = 0)
 {
     ob_start();
     debug_print_backtrace();
     $infos = ob_get_contents();
     ob_end_clean();
     $id = '#' . ++$deep;
     $entry = str_replace(mb_strstr($infos, $id), "", $infos);
     if (!$entry) {
         $entry = $infos;
     }
     $it_was_me = mb_strrchr(mb_strrchr($entry, '#'), '/');
     $it_was_me = explode(':', mb_substr($it_was_me, 1, -2));
     if (!empty($it_was_me[0])) {
         return $it_was_me;
     } else {
         if ($back > 0) {
             return self::whoCalledMe(++$deep, --$back);
         } else {
             return array();
         }
     }
 }
Beispiel #15
0
 /**
  * Get the extension.
  *
  * @access public
  * @param string $file
  * @return string
  * @static
  */
 public static function ext($file)
 {
     return mb_strtolower(trim(mb_strrchr($file, '.'), '.'));
 }
Beispiel #16
0
 function url_to_absolute($baseUrl, $relativeUrl)
 {
     // If relative URL has a scheme, clean path and return.
     $r = split_url($relativeUrl);
     if ($r === FALSE) {
         return FALSE;
     }
     if (!empty($r['scheme'])) {
         if (!empty($r['path']) && $r['path'][0] == '/') {
             $r['path'] = url_remove_dot_segments($r['path']);
         }
         return join_url($r);
     }
     // Make sure the base URL is absolute.
     $b = split_url($baseUrl);
     if ($b === FALSE || empty($b['scheme']) || empty($b['host'])) {
         return FALSE;
     }
     $r['scheme'] = $b['scheme'];
     // If relative URL has an authority, clean path and return.
     if (isset($r['host'])) {
         if (!empty($r['path'])) {
             $r['path'] = url_remove_dot_segments($r['path']);
         }
         return join_url($r);
     }
     unset($r['port']);
     unset($r['user']);
     unset($r['pass']);
     // Copy base authority.
     $r['host'] = $b['host'];
     if (isset($b['port'])) {
         $r['port'] = $b['port'];
     }
     if (isset($b['user'])) {
         $r['user'] = $b['user'];
     }
     if (isset($b['pass'])) {
         $r['pass'] = $b['pass'];
     }
     // If relative URL has no path, use base path
     if (empty($r['path'])) {
         if (!empty($b['path'])) {
             $r['path'] = $b['path'];
         }
         if (!isset($r['query']) && isset($b['query'])) {
             $r['query'] = $b['query'];
         }
         return join_url($r);
     }
     // If relative URL path doesn't start with /, merge with base path
     if ($r['path'][0] != '/') {
         $base = mb_strrchr($b['path'], '/', TRUE, 'UTF-8');
         if ($base === FALSE) {
             $base = '';
         }
         $r['path'] = $base . '/' . $r['path'];
     }
     $r['path'] = url_remove_dot_segments($r['path']);
     return join_url($r);
 }
Beispiel #17
0
 public function user_list()
 {
     $ml = D('Users');
     $groupList = M('usergroups')->select();
     $p = isset($_GET['p']) ? $_GET['p'] : 0;
     $txtKeywords = isset($_POST['txtKeywords']) ? $_POST['txtKeywords'] : '';
     $ddlGroupId = isset($_POST['ddlGroupId']) ? $_POST['ddlGroupId'] : 0;
     if (IS_POST) {
         $rptList = array();
         $rptListh = array();
         $rptList = $_POST['rptList$ctl$chkId'];
         $rptListh = $_POST['rptList$ctl$hidId'];
         if ("btnDelete" == $_POST['__EVENTTARGET']) {
             $delArray = array();
             $delMap = array();
             foreach ($rptList as $k => $v) {
                 $delArray[] = $rptListh[$k];
             }
             $delMap['id'] = array('in', $delArray);
             $ml->relation(true)->where($delMap)->delete();
             $this->success('删除成功!', U('Users/user_list'), 1);
         } else {
             $data = array();
             $data['user_name'] = array('like', "%" . $txtKeywords . "%");
             if (0 != $ddlGroupId) {
                 $data['group_id'] = $ddlGroupId;
             }
             $pageData = $this->getNormalPage($ml, 8, $data, true);
             foreach ($pageData['list'] as $userKK => $userVV) {
                 $pageData['list'][$userKK]['headImg'] = mb_strrchr($userVV['avatar'], "/", true) . '/headm_' . substr(strrchr($userVV['avatar'], "/"), 1);
             }
             $this->assign('p', $p);
             $this->assign('groupList', $groupList);
             $this->assign('ddlGroupId', $ddlGroupId);
             $this->assign('txtKeywords', $txtKeywords);
             $this->assign('pageData', $pageData);
             $this->display();
         }
     } else {
         $data = array();
         $pageData = $this->getNormalPage($ml, 8, $data, true);
         foreach ($pageData['list'] as $userKK => $userVV) {
             $pageData['list'][$userKK]['headImg'] = mb_strrchr($userVV['avatar'], "/", true) . '/thumb_' . substr(strrchr($userVV['avatar'], "/"), 1);
         }
         $this->assign('p', $p);
         $this->assign('groupList', $groupList);
         $this->assign('ddlGroupId', $ddlGroupId);
         $this->assign('txtKeywords', $txtKeywords);
         $this->assign('pageData', $pageData);
         $this->display();
     }
 }
Beispiel #18
0
// define some classes
class classWithToString
{
    public function __toString()
    {
        return "Class A object";
    }
}
class classWithoutToString
{
}
// heredoc string
$heredoc = <<<EOT
hello world
EOT;
// get a resource variable
$fp = fopen(__FILE__, "r");
// add arrays
$index_array = array(1, 2, 3);
$assoc_array = array('one' => 1, 'two' => 2);
//array of values to iterate over
$inputs = array('int 0' => 0, 'int 1' => 1, 'int 12345' => 12345, 'int -12345' => -2345, 'float 10.5' => 10.5, 'float -10.5' => -10.5, 'float 12.3456789000e10' => 123456789000.0, 'float -12.3456789000e10' => -123456789000.0, 'float .5' => 0.5, 'empty array' => array(), 'int indexed array' => $index_array, 'associative array' => $assoc_array, 'nested arrays' => array('foo', $index_array, $assoc_array), 'uppercase NULL' => NULL, 'lowercase null' => null, 'lowercase true' => true, 'lowercase false' => false, 'uppercase TRUE' => TRUE, 'uppercase FALSE' => FALSE, 'empty string DQ' => "", 'empty string SQ' => '', 'instance of classWithToString' => new classWithToString(), 'instance of classWithoutToString' => new classWithoutToString(), 'undefined var' => @$undefined_var, 'unset var' => @$unset_var, 'resource' => $fp);
// loop through each element of the array for haystack
foreach ($inputs as $key => $value) {
    echo "\n--{$key}--\n";
    var_dump(mb_strrchr($value, $needle, $part, $encoding));
}
fclose($fp);
?>
===DONE===
 /**
  * Finds the last occurrence of a character in a string within another.
  * UTF-8 ONLY safe mb_strrchr().
  *
  * @param string $haystack The string from which to get the last occurrence of needle.
  * @param string $needle The string to find in haystack.
  * @param boolean $part If true, returns the portion before needle, else return the portion after (including needle).
  * @return string|false False when not found.
  * @since 2.4.6, 2.5.2, 2.6
  */
 public static function strrchr($haystack, $needle, $part = false)
 {
     if (function_exists('mb_strrchr')) {
         return mb_strrchr($haystack, $needle, $part, 'UTF-8');
     }
     $pos = self::strrpos($haystack, $needle);
     if ($pos === false) {
         return false;
     }
     $length = null;
     if ($part) {
         $length = $pos;
         $pos = 0;
     }
     return self::substr($haystack, $pos, $length, 'utf-8');
 }
Beispiel #20
0
 /**
  * testUsingMbStrrchr method
  *
  * @return void
  */
 public function testUsingMbStrrchr()
 {
     $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
     $find = 'F';
     $result = mb_strrchr($string, $find);
     $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
     $this->assertEquals($expected, $result);
     $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
     $find = 'F';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ABCDE';
     $this->assertEquals($expected, $result);
     $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
     $find = 'Å';
     $result = mb_strrchr($string, $find);
     $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
     $this->assertEquals($expected, $result);
     $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
     $find = 'Å';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ÀÁÂÃÄ';
     $this->assertEquals($expected, $result);
     $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
     $find = 'Ċ';
     $result = mb_strrchr($string, $find);
     $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
     $this->assertEquals($expected, $result);
     $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
     $find = 'Ċ';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ĀĂĄĆĈ';
     $this->assertEquals($expected, $result);
     $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
     $find = 'F';
     $result = mb_strrchr($string, $find);
     $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
     $this->assertEquals($expected, $result);
     $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
     $find = 'F';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
     $this->assertEquals($expected, $result);
     $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
     $find = 'µ';
     $result = mb_strrchr($string, $find);
     $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
     $this->assertEquals($expected, $result);
     $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
     $find = 'µ';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
     $this->assertEquals($expected, $result);
     $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
     $find = 'Þ';
     $result = mb_strrchr($string, $find);
     $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
     $this->assertEquals($expected, $result);
     $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
     $find = 'Þ';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
     $this->assertEquals($expected, $result);
     $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
     $find = 'Ņ';
     $result = mb_strrchr($string, $find);
     $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
     $this->assertEquals($expected, $result);
     $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
     $find = 'Ņ';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
     $this->assertEquals($expected, $result);
     $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
     $find = 'Ƹ';
     $result = mb_strrchr($string, $find);
     $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
     $this->assertEquals($expected, $result);
     $find = 'Ƹ';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
     $this->assertEquals($expected, $result);
     $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
     $find = 'ʀ';
     $result = mb_strrchr($string, $find);
     $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
     $this->assertEquals($expected, $result);
     $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
     $find = 'ʀ';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
     $this->assertEquals($expected, $result);
     $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
     $find = 'Ї';
     $result = mb_strrchr($string, $find);
     $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
     $this->assertEquals($expected, $result);
     $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
     $find = 'Ї';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ЀЁЂЃЄЅІ';
     $this->assertEquals($expected, $result);
     $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
     $find = 'Р';
     $result = mb_strrchr($string, $find);
     $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
     $this->assertEquals($expected, $result);
     $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
     $find = 'Р';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'МНОП';
     $this->assertEquals($expected, $result);
     $string = 'فقكلمنهوىيًٌٍَُ';
     $find = 'ن';
     $result = mb_strrchr($string, $find);
     $expected = 'نهوىيًٌٍَُ';
     $this->assertEquals($expected, $result);
     $string = 'فقكلمنهوىيًٌٍَُ';
     $find = 'ن';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'فقكلم';
     $this->assertEquals($expected, $result);
     $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
     $find = '✿';
     $result = mb_strrchr($string, $find);
     $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
     $this->assertEquals($expected, $result);
     $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
     $find = '✿';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
     $this->assertEquals($expected, $result);
     $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
     $find = '⺐';
     $result = mb_strrchr($string, $find);
     $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
     $this->assertEquals($expected, $result);
     $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
     $find = '⺐';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
     $this->assertEquals($expected, $result);
     $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
     $find = '⽤';
     $result = mb_strrchr($string, $find);
     $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
     $this->assertEquals($expected, $result);
     $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
     $find = '⽤';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
     $this->assertEquals($expected, $result);
     $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
     $find = '눻';
     $result = mb_strrchr($string, $find);
     $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
     $this->assertEquals($expected, $result);
     $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
     $find = '눻';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
     $this->assertEquals($expected, $result);
     $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
     $find = 'ﺞ';
     $result = mb_strrchr($string, $find);
     $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
     $this->assertEquals($expected, $result);
     $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
     $find = 'ﺞ';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
     $this->assertEquals($expected, $result);
     $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
     $find = 'ﻞ';
     $result = mb_strrchr($string, $find);
     $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
     $this->assertEquals($expected, $result);
     $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
     $find = 'ﻞ';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
     $this->assertEquals($expected, $result);
     $string = 'abcdefghijklmnopqrstuvwxyz';
     $find = 'k';
     $result = mb_strrchr($string, $find);
     $expected = 'klmnopqrstuvwxyz';
     $this->assertEquals($expected, $result);
     $string = 'abcdefghijklmnopqrstuvwxyz';
     $find = 'k';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'abcdefghij';
     $this->assertEquals($expected, $result);
     $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
     $find = 'ア';
     $result = mb_strrchr($string, $find);
     $expected = 'アイウエオカキク';
     $this->assertEquals($expected, $result);
     $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
     $find = 'ア';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = '。「」、・ヲァィゥェォャュョッー';
     $this->assertEquals($expected, $result);
     $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
     $find = 'ハ';
     $result = mb_strrchr($string, $find);
     $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
     $this->assertEquals($expected, $result);
     $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
     $find = 'ハ';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'ケコサシスセソタチツテトナニヌネノ';
     $this->assertEquals($expected, $result);
     $string = 'Ĥēĺļŏ, Ŵőřļď!';
     $find = 'ő';
     $result = mb_strrchr($string, $find);
     $expected = 'őřļď!';
     $this->assertEquals($expected, $result);
     $string = 'Ĥēĺļŏ, Ŵőřļď!';
     $find = 'ő';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'Ĥēĺļŏ, Ŵ';
     $this->assertEquals($expected, $result);
     $string = 'Hello, World!';
     $find = 'o';
     $result = mb_strrchr($string, $find);
     $expected = 'orld!';
     $this->assertEquals($expected, $result);
     $string = 'Hello, World!';
     $find = 'o';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'Hello, W';
     $this->assertEquals($expected, $result);
     $string = 'Hello, World!';
     $find = 'Wo';
     $result = mb_strrchr($string, $find);
     $expected = 'World!';
     $this->assertEquals($expected, $result);
     $string = 'Hello, World!';
     $find = 'Wo';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'Hello, ';
     $this->assertEquals($expected, $result);
     $string = 'Hello, World!';
     $find = 'll';
     $result = mb_strrchr($string, $find);
     $expected = 'llo, World!';
     $this->assertEquals($expected, $result);
     $string = 'Hello, World!';
     $find = 'll';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'He';
     $this->assertEquals($expected, $result);
     $string = 'Hello, World!';
     $find = 'rld';
     $result = mb_strrchr($string, $find);
     $expected = 'rld!';
     $this->assertEquals($expected, $result);
     $string = 'Hello, World!';
     $find = 'rld';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'Hello, Wo';
     $this->assertEquals($expected, $result);
     $string = 'čini';
     $find = 'n';
     $result = mb_strrchr($string, $find);
     $expected = 'ni';
     $this->assertEquals($expected, $result);
     $string = 'čini';
     $find = 'n';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'či';
     $this->assertEquals($expected, $result);
     $string = 'moći';
     $find = 'ć';
     $result = mb_strrchr($string, $find);
     $expected = 'ći';
     $this->assertEquals($expected, $result);
     $string = 'moći';
     $find = 'ć';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'mo';
     $this->assertEquals($expected, $result);
     $string = 'državni';
     $find = 'ž';
     $result = mb_strrchr($string, $find);
     $expected = 'žavni';
     $this->assertEquals($expected, $result);
     $string = 'državni';
     $find = 'ž';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = 'dr';
     $this->assertEquals($expected, $result);
     $string = '把百度设为首页';
     $find = '设';
     $result = mb_strrchr($string, $find);
     $expected = '设为首页';
     $this->assertEquals($expected, $result);
     $string = '把百度设为首页';
     $find = '设';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = '把百度';
     $this->assertEquals($expected, $result);
     $string = '一二三周永龍';
     $find = '周';
     $result = mb_strrchr($string, $find);
     $expected = '周永龍';
     $this->assertEquals($expected, $result);
     $string = '一二三周永龍';
     $find = '周';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = '一二三';
     $this->assertEquals($expected, $result);
     $string = '一二三周永龍';
     $find = '周龍';
     $result = mb_strrchr($string, $find, TRUE);
     $expected = FALSE;
     $this->assertEquals($expected, $result);
 }
Beispiel #21
0
 /**
  * Truncates a string to a certain length.
  *
  * @public
  * @param string $text
  * @param int $limit
  * @param string $ending
  * @return string
  * @static
  */
 public static function truncate($text, $limit = 25, $ending = '...')
 {
     if (mb_strlen($text) > $limit) {
         $text = strip_tags($text);
         $text = mb_substr($text, 0, $limit);
         $text = mb_substr($text, 0, -mb_strlen(mb_strrchr($text, ' ')));
         $text = $text . $ending;
     }
     return $text;
 }
Beispiel #22
0
 /**
  * Get last occurence of a string within another
  * @param string $haystack
  * @param string $needle
  * 
  * @return string
  */
 public function strrchr($haystack, $needle)
 {
     return mb_strrchr($haystack, $needle, false, $this->encoding);
 }
Beispiel #23
0
 /*if($handle = opendir('functions'))
 	{
 		if(!is_array($IgnoreFiles))
 			$IgnoreFiles=Array();
 
 		while (false !== ($file = readdir($handle)))
 		{
 			// if filename isn't '.' '..' or in the Ignore list... load it.
 			if($file!='.' && $file!='..' && !in_array($file,$IgnoreFiles))
 				require_once('functions/'.$file);
 		}
 	}*/
 $functions = scandir('functions/');
 foreach ($functions as $function) {
     //filter PHP files
     if (mb_strrchr($function, '.') == '.php') {
         require_once 'functions/' . $function;
     }
 }
 // Start Session.
 session_name('RosarioSIS');
 if ($_SERVER['SCRIPT_NAME'] != '/index.php') {
     session_set_cookie_params(0, dirname($_SERVER['SCRIPT_NAME']) . '/');
 }
 //,'',$false,$true);
 session_start();
 if (!$_SESSION['STAFF_ID'] && !$_SESSION['STUDENT_ID'] && mb_strpos($_SERVER['PHP_SELF'], 'index.php') === false) {
     header('Location: index.php');
     exit;
 }
 // Internationalization
Beispiel #24
0
 /**
  * Extension.
  *
  * @since 160308 PHP CLI server.
  *
  * @return string File extension.
  */
 protected static function ext($file)
 {
     return mb_strtolower(ltrim(mb_strrchr(basename($file), '.'), '.'));
 }
 public function content_list()
 {
     $property = array("unIsLock" => '待审核', "isLock" => '已审核', "isMsg" => '可评论', "isTop" => '置顶', "isRed" => '推荐', "isHot" => '热门', "isSlide" => '幻灯片');
     $p = isset($_GET['p']) ? $_GET['p'] : 0;
     $vtype = isset($_GET['vtype']) ? $_GET['vtype'] : "lbtnViewImg";
     $ddlProperty = isset($_POST['ddlProperty']) ? $_POST['ddlProperty'] : "not";
     $txtKeywords = isset($_POST['txtKeywords']) ? $_POST['txtKeywords'] : '';
     $ddlCategoryId = isset($_POST['ddlCategoryId']) ? $_POST['ddlCategoryId'] : 0;
     $ml = D('Article');
     $cat = D('Articlecategory');
     $catlist = $this->getHasCat($this->channel_id, $ml, $cat);
     if (IS_POST) {
         $rptList = array();
         $rptListh = array();
         $rptListSortId = array();
         if ('lbtnViewImg' == $vtype) {
             $rptList = $_POST['rptList2$ctl$chkId'];
             $rptListh = $_POST['rptList2$ctl$hidId'];
             $rptListSortId = $_POST['rptList2$ctl$txtSortId'];
         } else {
             $rptList = $_POST['rptList1$ctl$chkId'];
             $rptListh = $_POST['rptList1$ctl$hidId'];
             $rptListSortId = $_POST['rptList1$ctl$txtSortId'];
         }
         if ("btnDelete" == $_POST['__EVENTTARGET']) {
             $delArray = array();
             $delMap = array();
             foreach ($rptList as $k => $v) {
                 $delArray[] = $rptListh[$k];
             }
             $delMap['id'] = array('in', $delArray);
             $ml->relation(true)->where($delMap)->delete();
             $this->success('删除成功!', U('Content/content_list', array('vtype' => $vtype, 'p' => $p, 'channel_id' => $this->channel_id)), 1);
         } elseif ("btnAudit" == $_POST['__EVENTTARGET']) {
             $audArray = array();
             $audMap = array();
             foreach ($rptList as $kk => $vv) {
                 $audArray[] = $rptListh[$kk];
             }
             foreach ($audArray as $vvv) {
                 $audMap['id'] = $vvv;
                 $audMap['status'] = 1;
                 $ml->save($audMap);
             }
             $this->success('审核成功!', U('Content/content_list', array('vtype' => $vtype, 'p' => $p, 'channel_id' => $this->channel_id)), 1);
         } elseif ("btnSave" == $_POST['__EVENTTARGET']) {
             foreach ($rptListh as $kkkk => $vvvv) {
                 $audMap['id'] = $vvvv;
                 $audMap['sort_id'] = $rptListSortId[$kkkk];
                 $ml->save($audMap);
             }
             $this->success('保存排序成功!', U('Content/content_list', array('vtype' => $vtype, 'p' => $p, 'channel_id' => $this->channel_id)), 1);
         } else {
             $data = array();
             switch ($ddlProperty) {
                 case 'isLock':
                     $data['status'] = 1;
                     break;
                 case 'unIsLock':
                     $data['status'] = 0;
                     break;
                 case 'isMsg':
                     $data['is_msg'] = 1;
                     break;
                 case 'isTop':
                     $data['is_top'] = 1;
                     break;
                 case 'isRed':
                     $data['is_red'] = 1;
                     break;
                 case 'isHot':
                     $data['is_hot'] = 1;
                     break;
                 case 'isSlide':
                     $data['is_slide'] = 1;
                     break;
                 default:
                     break;
             }
             $data['title'] = array('like', "%" . $txtKeywords . "%");
             if (0 != $ddlCategoryId) {
                 $data['category_id'] = $ddlCategoryId;
             }
             $pageData = $this->getPage($this->channel_id, $ml, 8, $data, true);
             foreach ($pageData["list"] as $infoK => $infoV) {
                 if (!strstr($infoV["img_url"], "thumb_")) {
                     $pageData["list"][$infoK]["img_url"] = mb_strrchr($infoV["img_url"], "/", true) . "/thumb_" . substr(mb_strrchr($infoV["img_url"], "/"), 1);
                 }
             }
             $this->assign('channel_id', $this->channel_id);
             $this->assign('cat', $catlist);
             $this->assign('property', $property);
             $this->assign('ddlProperty', $ddlProperty);
             $this->assign('ddlCategoryId', $ddlCategoryId);
             $this->assign('txtKeywords', $txtKeywords);
             $this->assign('pageData', $pageData);
             $this->assign('p', $p);
             $this->display($vtype);
         }
     } else {
         $data = array();
         $pageData = $this->getPage($this->channel_id, $ml, 8, $data, true);
         foreach ($pageData["list"] as $infoK => $infoV) {
             if (!strstr($infoV["img_url"], "thumb_")) {
                 $pageData["list"][$infoK]["img_url"] = mb_strrchr($infoV["img_url"], "/", true) . "/thumb_" . substr(mb_strrchr($infoV["img_url"], "/"), 1);
             }
         }
         $this->assign('channel_id', $this->channel_id);
         $this->assign('cat', $catlist);
         $this->assign('property', $property);
         $this->assign('ddlProperty', $ddlProperty);
         $this->assign('ddlCategoryId', $ddlCategoryId);
         $this->assign('txtKeywords', $txtKeywords);
         $this->assign('pageData', $pageData);
         $this->assign('p', $p);
         $this->display($vtype);
     }
 }
Beispiel #26
0
function print_copy_link_java($path, $name)
{
    $path = preg_replace("#/+#", "/", $path);
    $path = str_replace(G_LESSONSPATH, "/" . G_RELATIVELESSONSLINK, $path);
    $path = str_replace(G_ADMINPATH, "/" . G_RELATIVEADMINLINK, $path);
    $path = preg_replace("#/+#", "/", $path);
    echo "<a href = \"#\" onClick = \"top.document.getElementById('file').value = '" . mb_substr(mb_strrchr($path, "/"), 1) . "';";
    echo "top.document.getElementById('codebase').value = '" . strrev(mb_substr(mb_strstr(strrev($path), "/"), 1)) . "';";
    echo "\">" . $name . "</a>";
}
 public static function strrchr($s, $needle, $part = false)
 {
     return mb_strrchr($s, $needle, $part, '8bit');
 }
Beispiel #28
0
<?php

/* Prototype  : string mb_strrchr(string haystack, string needle[, bool part[, string encoding]])
 * Description: Finds the last occurrence of a character in a string within another 
 * Source code: ext/mbstring/mbstring.c
 * Alias to functions: 
 */
echo "*** Testing mb_strrchr() : error conditions ***\n";
echo "\n-- Testing mb_strrchr() with unknown encoding --\n";
$haystack = 'Hello, world';
$needle = 'world';
$encoding = 'unknown-encoding';
$part = true;
var_dump(mb_strrchr($haystack, $needle, $part, $encoding));
?>
===DONE===
 public function article_list()
 {
     $id = $_GET['id'];
     $this->assign('shudan_id', $id);
     $p = isset($_GET['p']) ? $_GET['p'] : 0;
     $vtype = isset($_GET['vtype']) ? $_GET['vtype'] : "lbtnViewTxt";
     $ddlProperty = isset($_POST['ddlProperty']) ? $_POST['ddlProperty'] : "not";
     $txtKeywords = isset($_POST['txtKeywords']) ? $_POST['txtKeywords'] : '';
     $ddlCategoryId = isset($_POST['ddlCategoryId']) ? $_POST['ddlCategoryId'] : 0;
     $ml = D('Article');
     $cat = D('Articlecategory');
     $catlist = $this->getHasCat($this->channel_id, $ml, $cat);
     if (IS_POST) {
         $rptList = array();
         $rptListh = array();
         $rptListSortId = array();
         if ('lbtnViewImg' == $vtype) {
             $rptList = $_POST['rptList2$ctl$chkId'];
             $rptListh = $_POST['rptList2$ctl$hidId'];
             $rptListSortId = $_POST['rptList2$ctl$txtSortId'];
         } else {
             $rptList = $_POST['rptList1$ctl$chkId'];
             $rptListh = $_POST['rptList1$ctl$hidId'];
             $rptListSortId = $_POST['rptList1$ctl$txtSortId'];
         }
         if ("btnDelete" == $_POST['__EVENTTARGET']) {
             $delArray = array();
             $delMap = array();
             foreach ($rptList as $k => $v) {
                 $delArray[] = $rptListh[$k];
             }
             $delMap['id'] = array('in', $delArray);
             $ml->where($delMap)->delete();
             $this->success('删除成功!', U('Down/down_list', array('vtype' => $vtype, 'p' => $p, 'channel_id' => $this->channel_id)), 1);
         } elseif ("btnAudit" == $_POST['__EVENTTARGET']) {
             $audArray = array();
             $audMap = array();
             foreach ($rptList as $kk => $vv) {
                 $audArray[] = $rptListh[$kk];
             }
             foreach ($audArray as $vvv) {
                 $audMap['id'] = $vvv;
                 $audMap['status'] = 0;
                 $ml->save($audMap);
             }
             $this->success('审核成功!', U('Down/down_list', array('vtype' => $vtype, 'p' => $p, 'channel_id' => $this->channel_id)), 1);
         } elseif ("btnSave" == $_POST['__EVENTTARGET']) {
             foreach ($rptListh as $kkkk => $vvvv) {
                 $audMap['id'] = $vvvv;
                 $audMap['sort_id'] = $rptListSortId[$kkkk];
                 $ml->save($audMap);
             }
             $this->success('保存排序成功!', U('Down/down_list', array('vtype' => $vtype, 'p' => $p, 'channel_id' => $this->channel_id)), 1);
         } else {
             $data = array();
             switch ($ddlProperty) {
                 case 'isMsg':
                     $data['is_msg'] = 1;
                     break;
                 case 'isTop':
                     $data['is_top'] = 1;
                     break;
                 case 'isRed':
                     $data['is_red'] = 1;
                     break;
                 case 'isHot':
                     $data['is_hot'] = 1;
                     break;
                 default:
                     break;
             }
             $data['title'] = array('like', "%" . $txtKeywords . "%");
             if (0 != $ddlCategoryId) {
                 $data['category_id'] = $ddlCategoryId;
             }
             $pageData = $this->getPage($this->channel_id, $ml, 8, $data, true);
             foreach ($pageData["list"] as $infoK => $infoV) {
                 if (!strstr($infoV["img_url"], "thumb_")) {
                     $pageData["list"][$infoK]["img_url"] = mb_strrchr($infoV["img_url"], "/", true) . "/thumb_" . substr(mb_strrchr($infoV["img_url"], "/"), 1);
                 }
             }
             $this->assign('channel_id', $this->channel_id);
             $this->assign('cat', $catlist);
             $this->assign('ddlProperty', $ddlProperty);
             $this->assign('ddlCategoryId', $ddlCategoryId);
             $this->assign('txtKeywords', $txtKeywords);
             $this->assign('pageData', $pageData);
             $this->assign('p', $p);
             $this->display();
         }
     } else {
         $list = M('article_list')->where('shudan_id = ' . $id)->select();
         foreach ($list as $l) {
             $book_id = $l['book_id'];
             $book = M('article')->where('id = ' . $book_id)->field('id,title,isbn,author,press')->find();
             $array['id'] = $l['id'];
             $array['book'] = $book;
             $result[] = $array;
         }
         $this->assign('list', $result);
         $this->display();
     }
 }
Beispiel #30
0
				echo "<p>Le fichier a été uploadé.</p>\n";

				//$source_file=stripslashes($xml_file['tmp_name']);
				$source_file=$xml_file['tmp_name'];
				$dest_file="../temp/".$tempdir."/responsables.xml";
				$res_copy=copy("$source_file" , "$dest_file");

				//===============================================================
				// ajout prise en compte des fichiers ZIP: Marc Leygnac

				$unzipped_max_filesize=getSettingValue('unzipped_max_filesize')*1024*1024;
				// $unzipped_max_filesize = 0    pas de limite de taille pour les fichiers extraits
				// $unzipped_max_filesize < 0    extraction zip désactivée
				if($unzipped_max_filesize>=0) {
					$fichier_emis=$xml_file['name'];
					$extension_fichier_emis=my_strtolower(mb_strrchr($fichier_emis,"."));
					if (($extension_fichier_emis==".zip")||($xml_file['type']=="application/zip"))
						{
						require_once('../lib/pclzip.lib.php');
						$archive = new PclZip($dest_file);

						if (($list_file_zip = $archive->listContent()) == 0) {
							echo "<p style='color:red;'>Erreur : ".$archive->errorInfo(true)."</p>\n";
							require("../lib/footer.inc.php");
							die();
						}

						if(sizeof($list_file_zip)!=1) {
							echo "<p style='color:red;'>Erreur : L'archive contient plus d'un fichier.</p>\n";
							require("../lib/footer.inc.php");
							die();