Вход Регистрация
Файл: concrete5.7.5.6/concrete/vendor/zendframework/zend-stdlib/src/StringWrapper/Native.php
Строк: 247
<?php
/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link      http://github.com/zendframework/zf2 for the canonical source repository
 * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */

namespace ZendStdlibStringWrapper;

use 
ZendStdlibException;
use 
ZendStdlibStringUtils;

class 
Native extends AbstractStringWrapper
{
    
/**
     * The character encoding working on
     * (overwritten to change defaut encoding)
     *
     * @var string
     */
    
protected $encoding 'ASCII';

    
/**
     * Check if the given character encoding is supported by this wrapper
     * and the character encoding to convert to is also supported.
     *
     * @param  string      $encoding
     * @param  string|null $convertEncoding
     * @return bool
     */
    
public static function isSupported($encoding$convertEncoding null)
    {
        
$encodingUpper      strtoupper($encoding);
        
$supportedEncodings = static::getSupportedEncodings();

        if (!
in_array($encodingUpper$supportedEncodings)) {
            return 
false;
        }

        
// This adapter doesn't support to convert between encodings
        
if ($convertEncoding !== null && $encodingUpper !== strtoupper($convertEncoding)) {
            return 
false;
        }

        return 
true;
    }

    
/**
     * Get a list of supported character encodings
     *
     * @return string[]
     */
    
public static function getSupportedEncodings()
    {
        return 
StringUtils::getSingleByteEncodings();
    }

    
/**
     * Set character encoding working with and convert to
     *
     * @param string      $encoding         The character encoding to work with
     * @param string|null $convertEncoding  The character encoding to convert to
     * @return StringWrapperInterface
     */
    
public function setEncoding($encoding$convertEncoding null)
    {
        
$supportedEncodings = static::getSupportedEncodings();

        
$encodingUpper strtoupper($encoding);
        if (!
in_array($encodingUpper$supportedEncodings)) {
            throw new 
ExceptionInvalidArgumentException(
                
'Wrapper doesn't support character encoding "' . $encoding . '"'
            );
        }

        if ($encodingUpper !== strtoupper($convertEncoding)) {
            $this->convertEncoding = $encodingUpper;
        }

        if ($convertEncoding !== null) {
            if ($encodingUpper !== strtoupper($convertEncoding)) {
                throw new ExceptionInvalidArgumentException(
                    '
Wrapper doesn't support to convert between character encodings'
                
);
            }

            
$this->convertEncoding $encodingUpper;
        } else {
            
$this->convertEncoding null;
        }
        
$this->encoding $encodingUpper;

        return 
$this;
    }

    
/**
     * Returns the length of the given string
     *
     * @param string $str
     * @return int|false
     */
    
public function strlen($str)
    {
        return 
strlen($str);
    }

    
/**
     * Returns the portion of string specified by the start and length parameters
     *
     * @param string   $str
     * @param int      $offset
     * @param int|null $length
     * @return string|false
     */
    
public function substr($str$offset 0$length null)
    {
        return 
substr($str$offset$length);
    }

    
/**
     * Find the position of the first occurrence of a substring in a string
     *
     * @param string $haystack
     * @param string $needle
     * @param int    $offset
     * @return int|false
     */
    
public function strpos($haystack$needle$offset 0)
    {
        return 
strpos($haystack$needle$offset);
    }
}
Онлайн: 1
Реклама