Foros del Web » Programando para Internet » PHP »

detectar texto en URL -.

Estas en el tema de detectar texto en URL -. en el foro de PHP en Foros del Web. Hola, Hay alguna forma para detectar un texto en una URL ?? http://dominio.com/juegos/index.html http://misitio.com/folder/juegos.html En el ejemplo anterior no importa donde esta la palabra JUEGOS.. ...
  #1 (permalink)  
Antiguo 20/03/2003, 18:55
Avatar de Rnsto  
Fecha de Ingreso: marzo-2002
Ubicación: Puerto Vallarta, Mexico
Mensajes: 204
Antigüedad: 15 años, 9 meses
Puntos: 0
detectar texto en URL -.

Hola,

Hay alguna forma para detectar un texto en una URL ??

http://dominio.com/juegos/index.html

http://misitio.com/folder/juegos.html


En el ejemplo anterior no importa donde esta la palabra JUEGOS.. la reconozca y yo pueda redireccionar adecuadamente...

GRACIAS :)
__________________
Saludos
Rnstho Luna
go2mexico.com
  #2 (permalink)  
Antiguo 20/03/2003, 20:16
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 15 años, 4 meses
Puntos: 4
Hola, creo que no te dejas entender, asi que voy a asumir lo que quieres y ojala no me equivoque:

tienes una variable que guarda una url:
$var = "http://www.dominio.com/juegos/index.html"

y tu quieres saber si esta contiene la palabra juegos:
Código PHP:
$pos strpos($var,"juegos"); 
if(
$pos===false) {
 echo 
"no hay juegos";
} else {
  
//echo "encontrado en caracter ".$pos;
  
header("Location: $var");

__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #3 (permalink)  
Antiguo 21/03/2003, 08:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tal vez con basename() lo solucione .. Pero habría que ver (que se explique mejor) .. que "texto" o en que orden a de aparecer para que se haga la redirección ...

Con basename() se obtiene el archivo de un path dado .. Hay un 2º parámetro para eliminar la extensión incluso.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 21/03/2003, 11:18
Avatar de Rnsto  
Fecha de Ingreso: marzo-2002
Ubicación: Puerto Vallarta, Mexico
Mensajes: 204
Antigüedad: 15 años, 9 meses
Puntos: 0
De antemano, gracias por su ayuda..

Exacto tengo una variable que contiene un URL

$pageref = http://dominio.com/juegos/index.htm

y a traves de una redireccion, se traslade a la pagina correcta.

La palabra juegos puede venir como folder o archivo.

ejemplo: http://dominio.com/juegos/index.htm http://dominio.com/tiempo/juegos.htm

Una vez que la encuentra, la guarde en una variable para poder realizar condiciones

if ($variable_que_contienen_el_texto_encontrado == juegos) {
header("Location: http://"$SERVER_NAME"/juegos.php2);
} elseif ($variable_que_contienen_el_texto_encontrado == libros) {
header("Location: http://"$SERVER_NAME"/libros.php");
} etc etc etc ...



y por cierto,, tal vez puedan decir si para esto sea mejor usar swich ....
__________________
Saludos
Rnstho Luna
go2mexico.com
  #5 (permalink)  
Antiguo 21/03/2003, 11:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con un swich() te quedaría mas "legible" el código ..

ademas podrias hacer algo tipo:

Código PHP:
<?

swich 
($tu_dominio) {

case 
"juegos":
$url="compones tu URL";
break;

case 
"libros":
$url="compones tu URL";
break;

default:
$url="pagia URL por defecto";

}

header ("location: $URL");
exit;
?>
Si veo bien.. lo que quieres hacer es sustituir el dominio del "referer" que tienes en esa variable del resto de la ruta? .. Es eso?.

Te lo comento porque .. con un explode() creo q te sobraría:

Código PHP:
$partes_url=explode("\",$url);
$tu_domino=$partes_url[0];
echo $tu_domino; 
Osease . "parto" el string tomando el caracter \ .. con eso obtego un array .. la primera posicion (elemento) vendría a ser tu domino .. Ojo si entra un URL tipo www.dominio.tal .. sin \ .. ahí tendiras q filtrar el tema ..( con strpos() podrias localizar si hay \ en la cadena)

Con expresiones regulares seguro q queda mas "bonito" y eficiente el código .. pero ahí no me meto yo xD..


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 21/03/2003, 12:55
Avatar de Rnsto  
Fecha de Ingreso: marzo-2002
Ubicación: Puerto Vallarta, Mexico
Mensajes: 204
Antigüedad: 15 años, 9 meses
Puntos: 0
No Cluster,

Eso de cambiar el dominio solo es una parte, pero eso no me causa ningun problema, esa parte la tengo resuelta...


Estoy tratando de hacer una pagina de error 404,

Hay varias ubicaciones de mi servidor que desaparecieron, y mediante PHP quiero arreglarlo...

mi pagina de JUEGOS... hace tiempo era...

http://dominio.com/juegos.htm

luego fue

http://dominio.com/juegos/

y ahora es:

http://dominio.com/juegos.php


Lo que quiero, es que servidor cuando no encuentra la ubicacion redireccione correctamente y quiero hacer una sola pagina para todo.

por eso necesito encontrar en el url, la palabra que me sirva para redireccionar correctamente...

Como puse en los ejemplos, algunas son nombres de archivos (juegos.htm) y otras en el folder (/juegos/)...

La opcion que me dio TEMAQUEJA, se acerca mucho a lo que necesito.

Y definitivamente una vez que tenga la variable, que contiene el texto (en este caso JUEGOS) la utilizacion de swich, es lo mejor pues son 9 posibles, situaciones diferentes...
__________________
Saludos
Rnstho Luna
go2mexico.com
  #7 (permalink)  
Antiguo 21/03/2003, 13:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues entonces ya lo tienes .. hazte tus combinaciones ...

Con substr_count() te irá mejor .. busca por "\juegos\" .. por "juegos.php" y por "juegos.htm" segun tengas tus combinaciones ..

Pero si la cadena a comparar es siempre diferente .. lo mejor sería usar IF .. creo yo:

Código PHP:
if (substr_count($tu_referer"juegos.html") >0){
header ("locacion: nuevapagina.tal");
exit;
}

if (
substr_count($tu_referer"/juegos/") >0){
header ("locacion: nuevapagina.tal");
exit;

Date cuenta que al redirecciona via "header" no hace falta ni el "else" . pues si se cumple redireccionamos y terminamos la ejecución del script (via exit;) .. Y así sucesivamente ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 12:43.