Jump to content


Photo

Url Amigáveis , Ajuda Com Array


  • Faça o login para participar
3 replies to this topic

#1 renato9863

renato9863

    Turista

  • Usuários
  • 28 posts
  • Sexo:Não informado

Posted 22/03/2010, 15:45

Olá a todos
Quero pedir uma ajuda no código:

<? 
$url = $_SERVER['REQUEST_URI']; 
// $url = categoria/fiat-marca/palio-modelo/2007-ano 
  
$array = explode('/', $url); 
//resultado : Array ( [0] => categoria [1] => fiat-marca [2] => palio-modelo [3] => 2007-ano ) 
 
Para eu usar isso seria assim: 
 
$categoria = $array[0]; 
$marca = $array[1]; 
$modelo = $array[2]; 
$ano = $array[3]; 
?>

Agora que vem meus problemas:
A variavel $url em alguns momentos virá assim:

$url = categoria/palio-modelo/2007-ano (sem o paramentro marca) 
//resultado : Array ( [0] => categoria [1] => palio-modelo [2] => 2007-ano )  
 
ou 
 
$url = categoria/palio-marca/2007-ano  (sem o paramentro modelo) 
//resultado : Array ( [0] => categoria [1] => fiat-marca [2] => 2007-ano )

Pergunto:
1- Como atribuir os valores as variaveis ($marca,$modelo, $ano), se em alguns momentos suas posições no array são modificadas ?

2- Observem que eu uso as palavras (-marca, -modelo, -ano) para identificar no array o que é marca, modelo e ano. Como fazer para identificar se no array esses caracteres/palavras existem?. Após identifcar eu preciso remover as palavras/caracteres (-marca, -modelo, -ano) para atribuir os valores as variaveis (exemplo: identifiquei "fiat-marca", agora preciso que a variável fique assim $marca=fiat).

Se algúem puder me dá dicas ou alguma forma de fazer isso eu agradeço.

Renato

#2 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 22/03/2010, 16:37

@ RENATO9863
Você pode resolver isso fazendo assim

/categoria/modelo:palio/cor:grafite/marca:ferrari

(o exemplo é meu eu coloco a marca que eu quiser ¬¬ :D )
Desta forma você quebra como já faz e ai usa in_array para verificar quais parâmetros existem no array, acho que já resolve.

Desta forma não faz diferença se está numa ordem exata ou não, se existe ou não existe, você verifica e usa o que houver.

Falopa!

Edição feita por: hostdesigner, 22/03/2010, 16:38.


#3 renato9863

renato9863

    Turista

  • Usuários
  • 28 posts
  • Sexo:Não informado

Posted 22/03/2010, 19:17

Olá Hostdesigner...

Acho que com "in_array" não funciona.
Por exemplo:

$url = "categoria/modelo:palio/cor:grafite/marca:ferrari";
$array = explode('/', $url);
//resultadoArray ( [0] => categoria [1] => modelo:palio [2] => cor:grafite [3] => marca:ferrari )

Se eu for verificar com in_array se existe o parametro "cor" eu faria assim:

if (in_array('cor:',$array));
//ocorre que isso não funciona

Só funciona se for assim:
if (in_array('cor:grafite',$array));
//SÓ QUE A COR SEMPRE VAI VARIAR

Se você puder me dá outra dica agradeço.

Renato

#4 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 22/03/2010, 19:25

@ RENATO9863
E quem disse que um cara criativo como você não pode dar um explode ali no 'modelo:testarossa-f50'?

Para de olhar para os dados como se fossem máquinas, são apenas dados é você quem define pra que eles vão servir, quebre as barras e também os dois pontos e pronto, só pra exemplificar vai ficar um array parecido com este.

Quebrando barras
<?php explode( '/', '/categoria:automoveis/modelo:testarossa-f50/ano:96/marca:ferrari' ); ?>
isso vai deixar algo como
categoria:automoveis
modelo:testarossa-f50
ano:96
marca:ferrari
Agora quebre novamente, mas desta vez nos dois pontos
<?php
array( 
'parametro' => 'valor',
'parametro2' => 'valor2',
'parametro2' => 'valor3'
)
?>
Acho que daqui pra frente tu já sai sozinho

Falopa!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq