Foros del Web » Programando para Internet » PHP »

funciones para reemplazar en una cadena,necesito ayuda

Estas en el tema de funciones para reemplazar en una cadena,necesito ayuda en el foro de PHP en Foros del Web. Hola amigos, mirar necesito alguna funcion en php que me detecte un parametro y lo cambie por otro... mirar yo lo que quiero es que ...
  #1 (permalink)  
Antiguo 04/05/2010, 05:19
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
funciones para reemplazar en una cadena,necesito ayuda

Hola amigos, mirar necesito alguna funcion en php que me detecte un parametro y lo cambie por otro...

mirar yo lo que quiero es que del link de youtube, width y height se cambien por otros que serán puestos por mi...

Teniendo en cuenta que el link de youtube lo tengo almacenado en un campo de una base de datos.

yo esa cadena que saco de dicho campo, quiero modificarla.

Yo lo que habia echo es lo siguiente:


Código PHP:

 <?php
             
            
                        $cadena
=$product_info['products_link_video'];
                        
$reemplazoancho="425";
                        
$reemplazoalto="344";
                        
$anchonuevo="250";    
                        
$altonuevo="200";
                        
                        
$cadenamod=str_replace($reemplazoancho,$anchonuevo,$cadena);
                        
$cadenamod=str_replace($reemplazoalto,$altonuevo,$cadenamod);  
                        
$product_info['products_link_video']=$cadenamod;
                        
//echo "MUESTRO $products_link_video" ;
                         
echo '<p align="right">' .$product_info['products_link_video']. '<p>' ;
                        
               }
                
              
?>
pero no habi tenido en cuenta que los videos de youtube , no tienen porque ser todos de width="425" ni height="344";

entonces a mi me gustaria que identificara lo que va en width="425" y se cambiara por 250 y en heigh por 200, existe alguna funcion para ello?

se me olvidaba comentar que el link de youtube me refiero a , esta seria la cadena:

<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/5yDx4QvfVc8&hl=es_ES&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/5yDx4QvfVc8&hl=es_ES&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>

Espero respuesta.
Gracias.

Última edición por pacorubio77; 04/05/2010 a las 05:30
  #2 (permalink)  
Antiguo 04/05/2010, 05:31
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Debes usar expresiones regulares, y la funcion preg_replace, te recomiendo que busques en google sobre expresiones regulares, que las estudies un poco, y entonces sabrás usar la funcion preg_replace: http://es2.php.net/manual/es/function.preg-replace.php

Un saludo
  #3 (permalink)  
Antiguo 04/05/2010, 05:52
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Cita:
Iniciado por Heli0s Ver Mensaje
Debes usar expresiones regulares, y la funcion preg_replace, te recomiendo que busques en google sobre expresiones regulares, que las estudies un poco, y entonces sabrás usar la funcion preg_replace: http://es2.php.net/manual/es/function.preg-replace.php

Un saludo
estoy leyendo dicha funcion y creo que no es lo que quiero, verdad?

yo quiero que encuentre width= y que despues de eso me cambie los valores que tenga por los que yo quiero, (width aparece dos veces en dicho link) y de igual forma con height.

Me equivoco?
  #4 (permalink)  
Antiguo 04/05/2010, 05:53
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Esa funcion localiza cualquier cosa en un string, y a partir de lo localizado puedes sustituir la parte que quieras, con esa función puedes realizar lo que necesitas.

Un saludo
  #5 (permalink)  
Antiguo 04/05/2010, 05:56
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Cita:
Iniciado por Heli0s Ver Mensaje
Esa funcion localiza cualquier cosa en un string, y a partir de lo localizado puedes sustituir la parte que quieras, con esa función puedes realizar lo que necesitas.

Un saludo
Gracias compañero, pero si te digo la verdad no se como aplicarla a mi caso.
  #6 (permalink)  
Antiguo 04/05/2010, 05:58
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Cita:
Iniciado por Heli0s Ver Mensaje
te recomiendo que busques en google sobre expresiones regulares, que las estudies un poco, y entonces sabrás usar la funcion preg_replace: http://es2.php.net/manual/es/function.preg-replace.php
  #7 (permalink)  
Antiguo 04/05/2010, 05:58
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Si, eso estoy haciendo,pero no se como utilizarlo en este caso.
  #8 (permalink)  
Antiguo 04/05/2010, 06:06
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

yo tengo que ver donde esta width= y despues de eso, meter los valores que yo quiero, sin hacerme mi caso en concreto, me puedo usted poner un ejemplo?
  #9 (permalink)  
Antiguo 04/05/2010, 07:32
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Aqui tienes un ejemplo:

Código PHP:
<?php
$cadena 
"<a width=\"500\">hi</a>";
echo 
preg_replace("/(width=\")([0-9])*(\")/""width=\"200\""$cadena);
?>
Como ves el witdh tiene de valor 500, pero en la pantalla muestra 200, porque el preg_replace ha detectado el width y lo ha sustituido.

Un saludo
  #10 (permalink)  
Antiguo 04/05/2010, 08:23
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Cita:
Iniciado por Heli0s Ver Mensaje
Aqui tienes un ejemplo:

Código PHP:
<?php
$cadena 
"<a width=\"500\">hi</a>";
echo 
preg_replace("/(width=\")([0-9])*(\")/""width=\"200\""$cadena);
?>
Como ves el witdh tiene de valor 500, pero en la pantalla muestra 200, porque el preg_replace ha detectado el width y lo ha sustituido.

Un saludo
si, pero aqui reemplaza el width="500", si no es 500 no reemplazaria, verdad?

yo lo que tengo que ver lo que hay dentro de "", en este caso es 500, pero yo tengo que ver lo que hay y cambiarlo por una variable que tengo $anchonuevo=250;

corrígeme si me equivoco.

Yo creo que el cambio que usted realiza tiene que tener width="500" , pero si no hay 500, tambien lo sustitituye?

Otra cuestion es que pones "width=\"200\"" , pero tambien se puede sustituir por $anchonuevo? yo lo quiero sustituir por la variable anchonuevo?

Un saludo, espero respuesta.

Gracias.
  #11 (permalink)  
Antiguo 04/05/2010, 08:27
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Que tenga 500 o que tenga 4382 no importa, es un número y al ser un número lo reemplazara, da igual el número que tenga, y para que en vez de sustituirlo por 200 lo sustituya por una variable solo tienes que ponerse la en la función.

Un saludo
  #12 (permalink)  
Antiguo 04/05/2010, 08:28
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Cita:
Iniciado por Heli0s Ver Mensaje
Que tenga 500 o que tenga 4382 no importa, es un número y al ser un número lo reemplazara, da igual el número que tenga, y para que en vez de sustituirlo por 200 lo sustituya por una variable solo tienes que ponerse la en la función.

Un saludo
De esta forma?

"width=\"$anchonuevo\"" ???
  #13 (permalink)  
Antiguo 04/05/2010, 09:35
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Código PHP:
<?php
$cadena 
"<a width=\"500\">hi</a>";
$anchonuevo 600;
echo 
preg_replace("/(width=\")([0-9])*(\")/""width=\"$anchonuevo\""$cadena);
?>
  #14 (permalink)  
Antiguo 05/05/2010, 08:32
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Cita:
Iniciado por Heli0s Ver Mensaje
Código PHP:
<?php
$cadena 
"<a width=\"500\">hi</a>";
$anchonuevo 600;
echo 
preg_replace("/(width=\")([0-9])*(\")/""width=\"$anchonuevo\""$cadena);
?>

Hola, una pregunta, pero ahi tu cadena es width="500", verdad?

es decir no tienes una cadena completa, me explico:

si la cadena fuera:

$cadena=" Hola a todos width="500" está bien "

haria lo mismo con está cadena?

da igual lo que vaya dentro de width?, es decir cogerá todo numero?
  #15 (permalink)  
Antiguo 05/05/2010, 08:39
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Hola,he probado lo que me dijo..es decir yo tengo lo siguiente:


echo preg_replace("/(width=\")([0-9])*(\")/", "width=\"200\"", $cadena);

pero despues de cambiar width,,tendré que hacer lo mismo con height que tambien es otro atributo, por eso si me devolviese una cadena yo esa cadena volveria a modificarla...me puede devolver una cadena, porque esa cadena con height tendré que hacer el mismo proceso..

me entiendes?

espero respuesta.

Última edición por pacorubio77; 05/05/2010 a las 10:33
  #16 (permalink)  
Antiguo 05/05/2010, 10:47
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Vuelve a aplicar la misma función pero en vez de con width con height, no es demasiado complicado hacer los cambios, intentalo y me comentas.

Un saludo
  #17 (permalink)  
Antiguo 05/05/2010, 11:24
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Cita:
Iniciado por Heli0s Ver Mensaje
Vuelve a aplicar la misma función pero en vez de con width con height, no es demasiado complicado hacer los cambios, intentalo y me comentas.

Un saludo
Correcto..funciona..funciona...

Muchas gracias...

Una ultima pregunta. en php un espacio en blanco es &nsbp, pero un retroceso? quiero decir un retroceso de un espacio si yo quiero mover un espacio a la izquierda?

es decir yo tengo lo siguiente:

Código PHP:
echo '<p align="right">' .$product_info['products_link_video']. '<p>' 
pero me es necesario mover un espacio a la derecha todo eso....como lo hago?
  #18 (permalink)  
Antiguo 05/05/2010, 11:58
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

&nbsp; no tiene que ver con PHP, tiene que ver con HTML y su codificación.
No entiendo muy bien a que te refieres, retroceder en la misma linea seria borrar un carácter... y en el ejemplo que has puesto no veo que necesidad tienes de hacer tal cosa.

Un saludo
  #19 (permalink)  
Antiguo 05/05/2010, 12:28
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Cita:
Iniciado por Heli0s Ver Mensaje
&nbsp; no tiene que ver con PHP, tiene que ver con HTML y su codificación.
No entiendo muy bien a que te refieres, retroceder en la misma linea seria borrar un carácter... y en el ejemplo que has puesto no veo que necesidad tienes de hacer tal cosa.

Un saludo
Si, te lo explico, el link de youtube que yo saco, que en realidad es el video de youtube, sale muy a la derecha, y me gustaria moverlo un espacio a la izquierda...
como lo puedo hacer?
  #20 (permalink)  
Antiguo 05/05/2010, 12:29
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Eso no tiene que ver con PHP, tiene que ver con HTML y maquetación, eso deberías preguntarlo en el foro de HTML o de CSS (si usas CSS), sin que se te olvide publicar el código que tienes.

Un saludo
  #21 (permalink)  
Antiguo 05/05/2010, 12:40
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: funciones para reemplazar en una cadena,necesito ayuda

Gracias de todas formas, lo preguntaré alli.

Gracias.

Etiquetas: funciones, reemplazar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:04.