Funciones para el manejo de strings en php.
Os adjuntamos una pequeña biblioteca de funciones que podéis utilizar para el manejo y transformación de cadenas de caracteres en php. Os pueden ser útiles en la creación de vuestros módulos en php o extensiones en Magento.
/** * functionsStrings.php : manipulación y transformación de cadenas de texto. */ /** * Comprueba si está activado <strong>get_magic_quotes_gpc</strong>, en el servidor. * Si está desactivado se aplica <strong>addslashes</strong> para doblar la comilla simple * * @param string $inString: string a tratar * @return string, string tratado si es necesario */ public function chkstring($inString) { if(!get_magic_quotes_gpc()) { $inString = addslashes($inString); } return $inString; } /** * Sustituye los caracteres 'no permitidos' en linux (apóstrofe, espacios, dieresis, acentos, etc...) * por otros 'permitidos' que no dan problemas. * * @param string $inString * @return string */ public function cleanstring($inString) { $arrFrom = array (' ','\'','\\',chr(96),chr(180),chr(241),chr(209),':',chr(225),chr(224),chr(193),chr(192),chr(233),chr(232),chr(201),chr(200),chr(237),chr(236),chr(239),chr(205),chr(204),chr(207),chr(243),chr(242),chr(211),chr(210),chr(250),chr(249),chr(252),chr(218),chr(217),chr(220),'&'); foreach($arrFrom as $key=>$sTmp) { $arrFrom[$key]=utf8_encode($arrFrom[$key]); } $arrTo = array ('_','','','','','n','N','','a','a','A','A','e','e','E','E','i','i','i','i','i','i','o','o','O','O','u','u','u','u','u','u','_'); $inString = str_replace($arrFrom, $arrFrom, $inString) ; return $inString; } /** * Devuelve la posición de una cadena de texto dentro de otra según un número de concurrencia. * * @param string $fromString - String que contiene la cadena de texto a buscar. * @param string $findString - String a encontrar * @param integer $numConcurrence - Número de concurrencia a buscar * @param integer $iInit - Posición inicial de la búsqueda. * @return integer $iPosition - Posición del string */ function strposbyconcurrence ($fromString, $findString, $numConcurrence, $iInit = 0) { $intStrPos = strpos($fromString, $findString, $iInit); if ($intStrPos > 0 && $numConcurrence > 1) $intStrPos = strposbyconcurrence ($fromString, $findString, $numConcurrence-1, $intStrPos+1); return $intStrPos; } /** * Busca valores de un array dentro de una cadena * * @param string $strFieldName * @param array $arrFieldNameTable * @return boolean $boolRes */ function findInString($strFieldName, $arrFieldNameTable) { $boolRes = false; while(list($key, $val) = each ($arrFieldNameTable)) { if (strstr(strtolower($strFieldName), strtolower($val))) { $boolRes = true; break; } } return $boolRes; } /** * Inserta espacios en blanco según indentación * * @param integer $numBlank * @return string $txtIndent */ function indentar($numBlank) { $txtIndent = ""; $charIns = " "; for ($i = 0;$i <= $numBlank;$i++) { $txtIndent = $txtIndent.$charIns; } return $txtIndent; } /** * Comprueba la sintaxis de una dirección de correo electrónico. * * @param string $mailaddress * @return boolean */ function chkmailaddress($mailaddress) { $mailok = true; if (!ereg('^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4}) , $mailaddress)) { $mailok = false; } return $mailok; }