oxstrmb.php

Go to the documentation of this file.
00001 <?php
00002 
00003 class oxStrMb
00004 {
00010     protected $_sEncoding = 'UTF-8';
00011 
00017     protected $_aUmls = array( "\xc3\xa4", "\xc3\xb6", "\xc3\xbc", "\xC3\x84", "\xC3\x96", "\xC3\x9C", "\xC3\x9F" );
00018 
00023     protected $_aUmlEntities = array('&auml;', '&ouml;', '&uuml;', '&Auml;', '&Ouml;', '&Uuml;', '&szlig;' );
00024 
00032     public function strlen($sStr)
00033     {
00034         return mb_strlen($sStr, $this->_sEncoding);
00035     }
00036 
00046     public function substr( $sStr, $iStart, $iLength = null )
00047     {
00048         $iLength = is_null( $iLength ) ? $this->strlen( $sStr ) : $iLength;
00049         return mb_substr( $sStr, $iStart, $iLength, $this->_sEncoding );
00050     }
00051 
00061     public function strpos( $sHaystack, $sNeedle, $iOffset = null )
00062     {
00063         $iOffset = is_null( $iOffset ) ? 0 : $iOffset;
00064         return mb_strpos( $sHaystack, $sNeedle, $iOffset, $this->_sEncoding );
00065     }
00066 
00075     public function strstr($sHaystack, $sNeedle)
00076     {
00077         return mb_strstr($sHaystack, $sNeedle, false, $this->_sEncoding);
00078     }
00079 
00087     public function strtolower($sString)
00088     {
00089         return mb_strtolower($sString, $this->_sEncoding);
00090     }
00091 
00099     public function strtoupper($sString)
00100     {
00101         return mb_strtoupper($sString, $this->_sEncoding);
00102     }
00103 
00112     public function htmlspecialchars($sString, $blDoubleEncode= true)
00113     {
00114         return htmlspecialchars($sString, ENT_QUOTES, $this->_sEncoding, $blDoubleEncode);
00115     }
00116 
00124     public function htmlentities($sString)
00125     {
00126         return htmlentities($sString, ENT_QUOTES, $this->_sEncoding);
00127     }
00128 
00136     public function html_entity_decode($sString)
00137     {
00138         return html_entity_decode( $sString, ENT_QUOTES, $this->_sEncoding );
00139     }
00140 
00151     public function preg_split($sPattern, $sString, $iLimit = -1, $iFlag = 0)
00152     {
00153         return preg_split( $sPattern.'u', $sString, $iLimit, $iFlag );
00154     }
00155 
00167     public function preg_replace($aPattern, $sString, $sSubject, $sLimit = -1, $iCount = null)
00168     {
00169         if ( is_array($aPattern) ) {
00170             foreach ( $aPattern as &$sPattern) {
00171                 $sPattern = $sPattern.'u';
00172             }
00173         } else {
00174             $aPattern = $aPattern.'u';
00175         }
00176         return preg_replace( $aPattern, $sString, $sSubject, $sLimit, $iCount);
00177     }
00178 
00190     public function preg_match($sPattern, $sSubject, &$aMatches = null, $iFlags = null, $iOffset = null)
00191     {
00192         return preg_match( $sPattern.'u', $sSubject, $aMatches, $iFlags, $iOffset);
00193     }
00194 
00202     public function ucfirst($sSubject)
00203     {
00204         $sString = $this->strtoupper($this->substr($sSubject, 0, 1));
00205         return $sString . $this->substr($sSubject, 1);
00206     }
00207 
00218     public function wordwrap( $sString, $iLength = 75, $sBreak = "\n", $blCut = null )
00219     {
00220         if ( !$blCut ) {
00221             $sRegexp = '/.{'.$iLength.',}\s/u';
00222         } else {
00223             $sRegexp = '/(\S{'.$iLength.'}|.{1,'.$iLength.'}\s)/u';
00224         }
00225 
00226         $iStrLen = mb_strlen( $sString, $this->_sEncoding );
00227         $iWraps = floor( $iStrLen / $iLength );
00228 
00229         $i = $iWraps;
00230         $sReturn = '';
00231         $aMatches = array();
00232         while ( $i > 0 ) {
00233             $iWraps = floor( mb_strlen( $sString, $this->_sEncoding ) / $iLength );
00234             
00235             $i = $iWraps;
00236             if ( preg_match( $sRegexp, $sString, $aMatches ) ) {
00237                 $sStr = $aMatches[0];
00238                 $sReturn .= trim( $sStr ) . $sBreak;
00239                 $sString = $this->substr( trim( $sString ), mb_strlen( $sStr, $this->_sEncoding ) );
00240             } else {
00241                 break;
00242             }
00243             $i--;
00244         }
00245         return $sReturn.$sString;
00246     }
00247 
00260     public function recodeEntities( $sInput, $blToHtmlEntities = false, $aUmls = array(), $aUmlEntities = array() )
00261     {
00262         $aUmls = ( count( $aUmls ) > 0 ) ? array_merge( $this->_aUmls, $aUmls) : $this->_aUmls;
00263         $aUmlEntities = ( count( $aUmlEntities ) > 0 ) ? array_merge( $this->_aUmlEntities, $aUmlEntities) : $this->_aUmlEntities;
00264         return $blToHtmlEntities ? str_replace( $aUmls, $aUmlEntities, $sInput ) : str_replace( $aUmlEntities, $aUmls, $sInput );
00265     }
00266 
00274     public function hasSpecialChars( $sStr )
00275     {
00276         return $this->preg_match( "/(".implode( "|", $this->_aUmls  )."|(&amp;))/", $sStr );
00277     }
00278 
00288     public function cleanStr( $sStr, $sCleanChr = ' ' )
00289     {
00290         return $this->preg_replace( "/\"|\'|\.|\:|\!|\?|\n|\r|\t|\xc2\x95|\xc2\xa0|;/", $sCleanChr, $sStr );
00291     }
00292 }

Generated on Tue Apr 21 15:45:45 2009 for OXID eShop CE by  doxygen 1.5.5