Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eugênio Telles

[Resolvido] Frase do dia

Recommended Posts

Fala galera! Tenho um sisteminha aqui de frases randômicas:

 

<?php
$frase=Array(
0 =>""A simplicidade é uma virtude possível somente<br> ao ignorante e ao sábio.<br>Ao ignorante, porque desconhece a complexidade do mundo;<br>ao sábio, porque superou toda a complexidade."",
1 =>""A complexidade de um contexto está no observador."<br>Raphael Murat",
2 =>""Para adquirir conhecimento, é preciso estudar; mas para adquirir sabedoria, é preciso observar."",
3 =>""A imaginação é a visão da alma."<br>Joseph Joubert",
4 =>""O olho do observador interfere no objeto observado."",
);

$x=rand(0,4);
echo $frase[$x];
?>
Cada vez que se atualiza a página aparece uma frase. Só que me ocorreu uma necessidade de criar umas frases pre-estabelecidas (ex: hoje eh dia do medico; hj eh dia do bombeiro; etc...) as q apareçam apenas no seu respectivo dia.

 

Dá pra aproveitar esse sisteminha q tenho? Como vou usar variaveis pra q a frase apareça apenas no dia determinado? E teria que consultar também o relógio e a data do computador, neh... como fazer isso?

 

Vlw galera, agradeço desde já a ajuda...

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que salvar as datas em que as frases serão exibidas.

Um banco de dados torna o trabalho mais simples e claro, mas se preferir array, faça algo assim:

 

$frases[0]['frase'] = 'Viva a independência do Brasil';
$frases[0]['dia'] = 7;
$frases[0]['mes'] = 9;

Aí você percorre o array até encontrar o dia e o mês correntes

Compartilhar este post


Link para o post
Compartilhar em outros sites

na hora de adicionar as frases no banco de dados, tu tem q por a descrição (para poder identificá-la mais tarde) e a data dela... Na hora de mostrar tu faz um if qualquer... simples.

 

$dataHoje = date('d/m/Y'); //

if ($dataHoje == $dataFrase) { 
.
.
.
}

 

deu pra sacar?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

na hora de adicionar as frases no banco de dados, tu tem q por a descrição (para poder identificá-la mais tarde) e a data dela... Na hora de mostrar tu faz um if qualquer... simples.

 

$dataHoje = date('d/m/Y'); //

if ($dataHoje == $dataFrase) { 
.
.
.
}

 

deu pra sacar?

 

[]s

 

Entendi sim.... eu nao nunk trabalhei com bd, nem sou programador, rs. o modo com array parece mais simples, mas o código certamente ficará extenso. pra esse modo no bd, o

$dataHoje = date('d/m/Y');
já pega os dados do calendario da maquina do usuario ne?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que salvar as datas em que as frases serão exibidas.

Um banco de dados torna o trabalho mais simples e claro, mas se preferir array, faça algo assim:

 

$frases[0]['frase'] = 'Viva a independência do Brasil';
$frases[0]['dia'] = 7;
$frases[0]['mes'] = 9;

Aí você percorre o array até encontrar o dia e o mês correntes

Po Beraldo, tentei fazer por array mas nao consegui. Eu achei um codigo na net que exibe a data do dia. Teria como meclar os dois? Ou seria melhor fazer do jeito q você citou primeiro (poderia me explicar +- como? pq nao consegui...)?

 

$dia_ingles = date("l"); //vê o dia da semana em inglês

switch($dia_ingles) //acha o dia da semana em português
{
  case "Monday":
   $dia_port = "Segunda-Feira";
   break;
  case "Tuesday":
   $dia_port = "Terça-Feira";
   break;
  case "Wednesday":
   $dia_port = "Quarta-Feira";
   break;
  case "Thursday":
   $dia_port = "Quinta-Feira";
   break;
  case "Friday":
   $dia_port = "Sexta-Feira";
   break;
  case "Saturday":
   $dia_port = "Sábado";
   break;
  case "Sunday":
   $dia_port = "Domingo";
   break;
}

$mes_ingles = date("n"); // vê o mês em Inglês

switch($mes_ingles) // acha o mês em português
{
  case "1":
	$mes_port = "Janeiro";
	break;
  case "2":
	$mes_port = "Fevereiro";
	break;
  case "3":
	$mes_port = "Março";
	break;
  case "4":
	$mes_port = "Abril";
	break;
  case "5":
	$mes_port = "Maio";
	break;
  case "6":
	$mes_port = "Junho";
	break;
  case "7":
	$mes_port = "Julho";
	break;
  case "8":
	$mes_port = "Agosto";
	break;
  case "9":
	$mes_port = "Setembro";
	break;
  case "10":
	$mes_port = "Outubro";
	break;
  case "11":
	$mes_port = "Novembro";
	break;
  case "12":
   $mes_port = "Dezembro";
   break;
}
//Resultado

echo ($dia_port);
echo (", ");
echo (date("d"));
echo (" de ");
echo ($mes_port);
echo (" de ");
echo (date("Y"));

Eu pensei em colocar alguma condicao pra comparar a frase do resultado desse codigo com a data da frase, ai exibiria o resultado... entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para mostrar a data cmopleta em portuguÊs, basta usar strftime() com setlocale(). Nada dessa gambiarras aí

 

http://www.php.net/strftime

 

setlocale(LC_ALL, "pt_BR.utf8", "pt_br", "pt_BR", "ptb", "ptb_ptb", "brazilian", "brazil", "portuguese");
echo strftime("Hoje é %A, %d de %B de %Y");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria diferente armazenaria todos as datas em uma base de dados e sua respectivas frases, e no select comparava a data e se fosse mostrava. o que não são poucas as datas comemorativas.

 

O bom que nem todas é de feriados, senão o Brasil só vivia em festas.

 

E concordo com o Beraldo ta uma Gambi só este code http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo simples não resolveria ?

 

 

$arr[12][25] = "Natal";
$arr[9][21] = "dia da árvore";

escopo

 

$arr[mes][dia]

 

 

 

exemplo prático

 

function BrazilHoliday( $month, $day )
{

	$arr[12][25] = "Natal";
	$arr[09][07] = "dia da independência";
	$arr[09][21] = "dia da árvore";

	if( isset( $arr[ $month ][ $day ] ) )
	{
		return $arr[ $month ][ $day ];
	}
	return false;

}


if( $rs = BrazilHoliday( date('m'), date('d') ) )
{
	echo $rs;
}else{
	// aqui manda escrever as outras frases randômicas..
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo simples não resolveria ?

 

 

$arr[12][25] = "Natal";
$arr[9][21] = "dia da árvore";

escopo

 

$arr[mes][dia]

 

 

 

exemplo prático

 

function BrazilHoliday( $month, $day )
{

	$arr[12][25] = "Natal";
	$arr[09][07] = "dia da independência";
	$arr[09][21] = "dia da árvore";

	if( isset( $arr[ $month ][ $day ] ) )
	{
		return $arr[ $month ][ $day ];
	}
	return false;

}


if( $rs = BrazilHoliday( date('m'), date('d') ) )
{
	echo $rs;
}else{
	// aqui manda escrever as outras frases randômicas..
}

Poxa hinom, axo q eh por ai... nao precisarei usar mts frases. nao vejo necessidade de um bd, sem contar que seria mt mais complicado pra eu pegar.

 

no raciocinio, dentro de function eu listo as frases com sua respectiva data. qual o raciocinio daquela condição dentro da funcao, como q ela funciona?

 

Ai dpois você bota uma condicao que compara o $rs com o resultado da funcao. se for coincidente à data do computador, ai escreve a string da funcao, se nao...

 

fiz o raciocinio correto? (eu testei o codigo e nao funfo http://forum.imasters.com.br/public/style_emoticons/default/natal_ohmy.gif )

Compartilhar este post


Link para o post
Compartilhar em outros sites

como fez o teste ?

 

qual parte nçao entendeu ?

 

pois são simples condicionais IF ELSE e uma função com 2 parâmetros.,,,

Compartilhar este post


Link para o post
Compartilhar em outros sites

como fez o teste ?

 

qual parte nçao entendeu ?

 

pois são simples condicionais IF ELSE e uma função com 2 parâmetros.,,,

 

Eu consegui entender o código direitinho... soh nao entendi pq nao funcionou. nao sei se eh meu servidor, se eh a cache da makina, ou sei la o q seja...

 

aqui esta como adaptei:

 

<?php
function BrazilHoliday( $month, $day )
{

	$arr[12][05] = "Natal";
	$arr[12][06] = "dia da independência";
	$arr[12][07] = "dia da árvore";
	$arr[12][08] = "hoje é dia 8";
	$arr[12][09] = "hoje é dia 9";
	$arr[12][10] = "hoje é dia 10";

	if( isset( $arr[ $month ][ $day ] ) )
	{
		return $arr[ $month ][ $day ];
	}
	return false;

}


if( $rs = BrazilHoliday( date('m'), date('d') ) )
{
	echo $rs;
}else{
	echo 'Seja bem vindo!';
}
?></p>

o endereço é www.geniusdesignbrasil.com/frase_dia2.php

 

quando testei alguns dias atras, nao aparecia nd. na frase de resultado aparecia "1", mt estranho. hj abri, e ja havia um "seja bem vindo" que foi a string q eu coloquei no caso de nao haver nenhuma data correspondende. ai vi q estava funcionando. atualizei com uma frase pro dia de hj e continuou aparecendo o "seja bem vindo".

Compartilhar este post


Link para o post
Compartilhar em outros sites

como fez o teste ?

 

qual parte nçao entendeu ?

 

pois são simples condicionais IF ELSE e uma função com 2 parâmetros.,,,

 

Eu consegui entender o código direitinho... soh nao entendi pq nao funcionou. nao sei se eh meu servidor, se eh a cache da makina, ou sei la o q seja...

 

aqui esta como adaptei:

 

<?php
function BrazilHoliday( $month, $day )
{

	$arr[12][05] = "Natal";
	$arr[12][06] = "dia da independência";
	$arr[12][07] = "dia da árvore";
	$arr[12][08] = "hoje é dia 8";
	$arr[12][09] = "hoje é dia 9";
	$arr[12][10] = "hoje é dia 10";

	if( isset( $arr[ $month ][ $day ] ) )
	{
		return $arr[ $month ][ $day ];
	}
	return false;

}


if( $rs = BrazilHoliday( date('m'), date('d') ) )
{
	echo $rs;
}else{
	echo 'Seja bem vindo!';
}
?></p>

o endereço é www.geniusdesignbrasil.com/frase_dia2.php

 

quando testei alguns dias atras, nao aparecia nd. na frase de resultado aparecia "1", mt estranho. hj abri, e ja havia um "seja bem vindo" que foi a string q eu coloquei no caso de nao haver nenhuma data correspondende. ai vi q estava funcionando. atualizei com uma frase pro dia de hj e continuou aparecendo o "seja bem vindo".

Compartilhar este post


Link para o post
Compartilhar em outros sites

pela descrição do problema que você experimentou,

 

sugiro que faça as alterações

 

<?php
function BrazilHoliday( $month, $day )
{

	$month = (int)$month;
	$day	 = (int)$day;

	$arr[12][5] = "Natal";
	$arr[12][6] = "dia da independência";
	$arr[12][7] = "dia da árvore";
	$arr[12][8] = "hoje é dia 8";
	$arr[12][9] = "hoje é dia 9";
	$arr[12][10] = "hoje é dia 10";

	if( isset( $arr[ $month ][ $day ] ) )
	{
		return $arr[ $month ][ $day ];
	}
	return false;

}


if( $rs = BrazilHoliday( date('m'), date('d') ) )
{
	echo $rs;
}else{
	echo 'Seja bem vindo!';
}
?></p>

 

apenas converti os valores dos parâmetros para números inteiros

e nos índices do array use numeros inteiros

 

 

obs: não testei nenhum dos scripts.. estou escrevendo diretamente no forum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pela descrição do problema que você experimentou,

 

sugiro que faça as alterações

 

<?php
function BrazilHoliday( $month, $day )
{

	$month = (int)$month;
	$day	 = (int)$day;

	$arr[12][5] = "Natal";
	$arr[12][6] = "dia da independência";
	$arr[12][7] = "dia da árvore";
	$arr[12][8] = "hoje é dia 8";
	$arr[12][9] = "hoje é dia 9";
	$arr[12][10] = "hoje é dia 10";

	if( isset( $arr[ $month ][ $day ] ) )
	{
		return $arr[ $month ][ $day ];
	}
	return false;

}


if( $rs = BrazilHoliday( date('m'), date('d') ) )
{
	echo $rs;
}else{
	echo 'Seja bem vindo!';
}
?></p>

 

apenas converti os valores dos parâmetros para números inteiros

e nos índices do array use numeros inteiros

 

 

obs: não testei nenhum dos scripts.. estou escrevendo diretamente no forum.

 

po, perfeito hinom!! Apareceu a frase esperada. de uma olhadinha [link]www.geniusdesignbrasil.com/frase_dia2.php[/link]

 

show! foi apenas aquela alteração do (int) q deu o jeito? amanhã verei a página novamente pra ver se tudo segue em ordem...

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.