Autor
|
Tema: Cadena de texto a url string (Leído 4,667 veces)
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
Hola, queria saber si existe una funcion que me convierta una cadena de texto cualqueira a una cadena apta para usar como parte de una url, por ejemplo a partir de la cadena: Guía de información útil para pingüinos Al pasarla por dicha funcion me devuelva: guia_de_infomracion_util_para_pinguinos Algo similar a la funcion underscore() de CodeIgniter. El problema con esta funcion es que no convierte caracteres con acentos u otros caracteres que no sean letras o numeros... El tema es que en mi web el usuario ingresara una caden de texto que sera usada como url http://www.miwebbsite.net/urlSaludos
|
|
|
En línea
|
No hay atajo ante la duda, el misterio se hace aquí... Se hace carne en cada uno, el misterio es existir!
|
|
|
madpitbull_99
|
Sí, la función de abajo la utilizo en CodeIgniter: public function downloadName($name) { }
Desconocía la función underscore() de CodeIgniter.
|
|
|
En línea
|
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
Gracias por responder. Lo que yo quiero es quitar acentos y esas cosas..el problema de underscore() es que no los convierte, solo los elimina, de momento se me ocurrio implementarlo asi: function PoC($cadena) { return $cadena }
Y ahi si ya puedo pasarla por underscore(). De momento es para lo unico que uso esta funcion, posiblemente edite la libreria (helper) inflector para agregarle esta funcionalidad. Saludos y nuevamente gracias.
|
|
|
En línea
|
No hay atajo ante la duda, el misterio se hace aquí... Se hace carne en cada uno, el misterio es existir!
|
|
|
madpitbull_99
|
Para reemplazar los acentos se puede hacer así: /** * Devuelve la cadena introducida en codigo * HTML correspondiete. * Usada para filtrar tildes y otros caracteres. * * @return string * @author MadPitbull */ public function replaceTildes ($cadena){ $cadena = htmlentities($cadena, ENT_QUOTES | ENT_IGNORE , "UTF-8"); return $cadena; }
Aunque supongo que tu método también funciona. La versión "más chapucera" sería de ésta forma: /** * Devuelve la cadena introducida en codigoH TML correspondiente - version antigua -. * * @return string * @author MadPitbull */ function replaceTildesOld($cadena){ return $cadena; }
|
|
|
En línea
|
|
|
|
Shell Root
|
Se pueden usar vectores para los patrones y los reemplazos, y se debe de usar preg_replace porque ereg_replace esta obsoleto. /** * * **/ function replaceTildes( $pString ){ $_characters = array( '/á/','/é/','/í/','/ó/','/ú/' ); $_replacement = array( 'á','é','í','ó','ú' ); }
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
WHK
|
Y donde dejan los carácteres unicodes? Esto uso yo en mi sistema web: function toFriendlyUrl($buff = false){ if(!$buff) $buff = $this->data; /* Nulls */ for($c = 0; $c <= 255; $c++){ $replaces[$c] = ''; } /* Numerics */ for($c = 48; $c <= 57; $c++){ } /* Upper chars */ for($c = 65; $c <= 90; $c++){ } /* Lower chars */ for($c = 97; $c <= 122; $c++){ } /* '"`´ */ $replaces[34] = '.'; $replaces[39] = '.'; $replaces[44] = '.'; $replaces[96] = '.'; /* Simbols */ $replaces[32] = '_'; /* Blank space */ $replaces[40] = '_'; $replaces[41] = '_'; $replaces[43] = '_'; $replaces[45] = '-'; $replaces[46] = '.'; $replaces[47] = '_'; $replaces[58] = '_'; $replaces[59] = '_'; $replaces[61] = '-'; $replaces[91] = '-'; $replaces[92] = '_'; $replaces[93] = '-'; $replaces[95] = '_'; $replaces[123] = '-'; $replaces[124] = '-'; $replaces[125] = '-'; $replaces[126] = '-'; $replaces[128] = 'e'; $replaces[130] = '_'; $replaces[131] = 'f'; $replaces[132] = '_'; $replaces[133] = '_'; $replaces[138] = 's'; $replaces[139] = '-'; $replaces[140] = 'ce'; $replaces[142] = 'z'; $replaces[149] = '.'; $replaces[150] = '-'; $replaces[151] = '-'; $replaces[152] = '-'; $replaces[153] = 'tm'; $replaces[154] = 's'; $replaces[155] = '-'; $replaces[152] = 'oe'; $replaces[158] = 'z'; $replaces[159] = 'y'; $replaces[160] = '_'; $replaces[162] = 'c'; $replaces[163] = 'f'; $replaces[164] = '.'; $replaces[165] = 'y'; $replaces[166] = '-'; $replaces[167] = 's'; $replaces[169] = 'c'; $replaces[170] = 'a'; $replaces[174] = 'r'; $replaces[175] = '-'; $replaces[176] = '.'; $replaces[178] = '2'; $replaces[179] = '3'; $replaces[181] = 'u'; $replaces[182] = 'p'; $replaces[183] = '.'; $replaces[184] = '_'; $replaces[185] = 'i'; $replaces[186] = 'o'; $replaces[188] = '14'; $replaces[189] = '12'; $replaces[190] = '34'; $replaces[192] = 'A'; $replaces[193] = 'A'; $replaces[194] = 'A'; $replaces[195] = 'A'; $replaces[196] = 'A'; $replaces[197] = 'A'; $replaces[198] = 'AE'; $replaces[199] = 'C'; $replaces[200] = 'E'; $replaces[201] = 'E'; $replaces[202] = 'E'; $replaces[203] = 'E'; $replaces[204] = 'I'; $replaces[205] = 'I'; $replaces[206] = 'I'; $replaces[207] = 'I'; $replaces[208] = 'D'; $replaces[209] = 'N'; $replaces[210] = 'O'; $replaces[211] = 'O'; $replaces[212] = 'O'; $replaces[213] = 'O'; $replaces[214] = 'O'; $replaces[215] = 'X'; $replaces[216] = 'O'; $replaces[217] = 'U'; $replaces[218] = 'U'; $replaces[219] = 'U'; $replaces[220] = 'U'; $replaces[221] = 'Y'; $replaces[222] = 'p'; $replaces[223] = 'b'; $replaces[224] = 'a'; $replaces[225] = 'a'; $replaces[226] = 'a'; $replaces[227] = 'a'; $replaces[228] = 'a'; $replaces[229] = 'a'; $replaces[230] = 'ae'; $replaces[231] = 'c'; $replaces[232] = 'e'; $replaces[233] = 'e'; $replaces[234] = 'e'; $replaces[235] = 'e'; $replaces[236] = 'i'; $replaces[237] = 'i'; $replaces[238] = 'i'; $replaces[239] = 'i'; $replaces[240] = 'o'; $replaces[241] = 'n'; $replaces[242] = 'o'; $replaces[243] = 'o'; $replaces[244] = 'o'; $replaces[245] = 'o'; $replaces[246] = 'o'; $replaces[248] = 'o'; $replaces[249] = 'u'; $replaces[250] = 'u'; $replaces[251] = 'u'; $replaces[252] = 'u'; $replaces[253] = 'y'; $replaces[254] = 'p'; $replaces[255] = 'y'; for($c = 0; $c <= 255; $c++){ $replaces_to[$c] = chr($c); } /* Repeat simbols */ foreach(array('-', '_', '.') as $replace){ foreach($tofilter as $filter){ } } } return $return; }
Asó puedes ingresar carácteres basura e igual te lo va a transformar.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sacar trozo de una cadena de string en C#
.NET (C#, VB.NET, ASP)
|
Camboyano
|
1
|
11,435
|
6 Mayo 2009, 14:27 pm
por Novlucker
|
|
|
Buscar cadena en String
.NET (C#, VB.NET, ASP)
|
.:Weeds:.
|
2
|
3,174
|
11 Febrero 2011, 08:46 am
por .:Weeds:.
|
|
|
se corta la cadena string
Programación Visual Basic
|
rembolso
|
2
|
2,668
|
1 Mayo 2011, 06:13 am
por rembolso
|
|
|
Cadena de bytes a string
Programación C/C++
|
85
|
4
|
4,215
|
24 Febrero 2013, 00:18 am
por 85
|
|
|
[ALGORITMO] ampliar cadena string
Java
|
kondrag_X1
|
1
|
2,065
|
8 Mayo 2013, 11:25 am
por DarkSorcerer
|
|