![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
08/02/2009, 20:03
|
| | Fecha de Ingreso: febrero-2009
Mensajes: 1
Antigüedad: 16 años Puntos: 0 | |
Problemas con str_replace y ereg_replace Hola buenas noches,
Tengo un problema con las funciones de php “str_replace” y “ereg_replace”, os comento.
Tengo que buscar dentro de una cadena una subcadena modificarla, el problema es que estas funciones (str_replace y ereg_replace) me cambian todas las coincidencias que encuentra en la cadena principal a buscar (que son 20 coincidencias), y yo lo que quiero es que me cambie solo una y en cada una me lo sustituya por una diferente. Lo intentado hacer de varias formas, me he leído gran parte de los temas del foro pero no doy con la solución.
Lo primero que probé fue:
$texto = estr_replace($textoBuscar,$textoSutituir, $texto);
Viendo que me sustituida todas las coincidencias (20 veces ) en vez de solo una busque y probé con:
$texto = estr_replace( $textoBuscar, $textoSutituir[$cont], $texto, $cont);
Como tampoco me funcionaba pues seguí buscando y encontré lo otra forma de hacerlo pero tampoco funciona que es:
$textoSutituir[0] = "ProductosItem0";
$textoSutituir[1] = "ProductosItem1";
$textoSutituir[2] = "ProductosItem2";
$textoSutituir[3] = "ProductosItem3";
$textoSutituir[4] = "ProductosItem4";
$textoSutituir[5] = "ProductosItem5";
$textoSutituir[6] = "ProductosItem6";
$textoSutituir[7] = "ProductosItem7";
$textoSutituir[8] = "ProductosItem8";
$textoSutituir[9] = "ProductosItem9";
$textoSutituir[10] = "ProductosItem10";
$textoSutituir[11] = "ProductosItem11";
$textoSutituir[12] = "ProductosItem12";
$textoSutituir[13] = "ProductosItem13";
$textoSutituir[14] = "ProductosItem14";
$textoSutituir[15] = "ProductosItem15";
$textoSutituir[16] = "ProductosItem16";
$textoSutituir[17] = "ProductosItem17";
$textoSutituir[18] = "ProductosItem18";
$textoSutituir[19] = "ProductosItem19";
$texto = estr_replace( $textoBuscar, $textoSutituir[$cont], $texto, $cont);
Tampoco funciona y ya no se como hacerlo, llevo ya 4 días intentando solucionarlo de alguna forma, ya sea con esta función o otra que me busque primero y luego me sustituya pero no hay manera de conseguirlo.
Yo simplemente lo que quiero es que cuando en la cadena este la palabra “ProductosItem”, me la sustituya en cada uno de las coincidencias por “ProductosItem” acompañado de algún valor más para diferenciar los productos, algo parecido a esto:
1ª Coincidencia : "ProductosItem" ---- > "ProductosItem0"
2ª Coincidencia : "ProductosItem" ---- > "ProductosItem1"
3ª Coincidencia : "ProductosItem" ---- > "ProductosItem2"
4ª Coincidencia : "ProductosItem" ---- > "ProductosItem3"
5ª Coincidencia : "ProductosItem" ---- > "ProductosItem4"
6ª Coincidencia : "ProductosItem" ---- > "ProductosItem5"
Así hasta llegar a 20.
Todo este problema es porque el contenido del que hablo me lo suministran y no tengo la opción de modificar el código, sino solo me limito a modificar el contenido que me llega.
Espero que alguien me pueda ayudar por favor, ya sea utilizando esta función, otras , o algún método para poder hacerlo.
Muchas Gracias de antemano. |