Correcting timezone problems within PHP

Por Saiyine Enviar correo el 2007-06-21 02:56:32 - Secciones:  PHP ENGLISH  - Enlace permanente: 772

Sometimes, our web server is far from us at the other side of the world, which messes with all date related information. There's a simple PHP solution that involves changing the timezone, so it stops showing you're writing for the web late at night when in fact you're wasting the time at work.

<?php

$now = time();

echo "Server date is: " . date ("H:i, l j F Y", $now)."<br />";

putenv("TZ=Europe/Madrid");

echo "While Spanish time is: " . date ("H:i, l j F Y", $now) . "<br />";

?>

By the way here you got a complete list of all the time zones so you can check the code or something.

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Kampala
Africa/Khartoum
Africa/Kigali
Africa/Kinshasa
Africa/Lagos
Africa/Libreville
Africa/Lome
Africa/Luanda
Africa/Lubumbashi
Africa/Lusaka
Africa/Malabo
Africa/Maputo
Africa/Maseru
Africa/Mbabane
Africa/Mogadishu
Africa/Monrovia
Africa/Nairobi
Africa/Ndjamena
Africa/Niamey
Africa/Nouakchott
Africa/Ouagadougou
Africa/Porto-Novo
Africa/Sao_Tome
Africa/Timbuktu
Africa/Tripoli
Africa/Tunis
Africa/Windhoek
America/Adak
America/Anchorage
America/Anguilla
America/Antigua
America/Araguaina
America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/ComodRivadavia
America/Argentina/Cordoba
America/Argentina/Jujuy
America/Argentina/La_Rioja
America/Argentina/Mendoza
America/Argentina/Rio_Gallegos
America/Argentina/San_Juan
America/Argentina/Tucuman
America/Argentina/Ushuaia
America/Aruba
America/Asuncion
America/Atikokan
America/Atka
America/Bahia
America/Barbados
America/Belem
America/Belize
America/Blanc-Sablon
America/Boa_Vista
America/Bogota
America/Boise
America/Buenos_Aires
America/Cambridge_Bay
America/Campo_Grande
America/Cancun
America/Caracas
America/Catamarca
America/Cayenne
America/Cayman
America/Chicago
America/Chihuahua
America/Coral_Harbour
America/Cordoba
America/Costa_Rica
America/Cuiaba
America/Curacao
America/Danmarkshavn
America/Dawson
America/Dawson_Creek
America/Denver
America/Detroit
America/Dominica
America/Edmonton
America/Eirunepe
America/El_Salvador
America/Ensenada
America/Fort_Wayne
America/Fortaleza
America/Glace_Bay
America/Godthab
America/Goose_Bay
America/Grand_Turk
America/Grenada
America/Guadeloupe
America/Guatemala
America/Guayaquil
America/Guyana
America/Halifax
America/Havana
America/Hermosillo
America/Indiana/Indianapolis
America/Indiana/Knox
America/Indiana/Marengo
America/Indiana/Petersburg
America/Indiana/Vevay
America/Indiana/Vincennes
America/Indiana/Winamac
America/Indianapolis
America/Inuvik
America/Iqaluit
America/Jamaica
America/Jujuy
America/Juneau
America/Kentucky/Louisville
America/Kentucky/Monticello
America/Knox_IN
America/La_Paz
America/Lima
America/Los_Angeles
America/Louisville
America/Maceio
America/Managua
America/Manaus
America/Martinique
America/Mazatlan
America/Mendoza
America/Menominee
America/Merida
America/Mexico_City
America/Miquelon
America/Moncton
America/Monterrey
America/Montevideo
America/Montreal
America/Montserrat
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
America/North_Dakota/Center
America/North_Dakota/New_Salem
America/Panama
America/Pangnirtung
America/Paramaribo
America/Phoenix
America/Port-au-Prince
America/Port_of_Spain
America/Porto_Acre
America/Porto_Velho
America/Puerto_Rico
America/Rainy_River
America/Rankin_Inlet
America/Recife
America/Regina
America/Resolute
America/Rio_Branco
America/Rosario
America/Santiago
America/Santo_Domingo
America/Sao_Paulo
America/Scoresbysund
America/Shiprock
America/St_Johns
America/St_Kitts
America/St_Lucia
America/St_Thomas
America/St_Vincent
America/Swift_Current
America/Tegucigalpa
America/Thule
America/Thunder_Bay
America/Tijuana
America/Toronto
America/Tortola
America/Vancouver
America/Virgin
America/Whitehorse
America/Winnipeg
America/Yakutat
America/Yellowknife
Antarctica/Casey
Antarctica/Davis
Antarctica/DumontDUrville
Antarctica/Mawson
Antarctica/McMurdo
Antarctica/Palmer
Antarctica/Rothera
Antarctica/South_Pole
Antarctica/Syowa
Antarctica/Vostok
Arctic/Longyearbyen
Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau
Asia/Aqtobe
Asia/Ashgabat
Asia/Ashkhabad
Asia/Baghdad
Asia/Bahrain
Asia/Baku
Asia/Bangkok
Asia/Beirut
Asia/Bishkek
Asia/Brunei
Asia/Calcutta
Asia/Choibalsan
Asia/Chongqing
Asia/Chungking
Asia/Colombo
Asia/Dacca
Asia/Damascus
Asia/Dhaka
Asia/Dili
Asia/Dubai
Asia/Dushanbe
Asia/Gaza
Asia/Harbin
Asia/Hong_Kong
Asia/Hovd
Asia/Irkutsk
Asia/Istanbul
Asia/Jakarta
Asia/Jayapura
Asia/Jerusalem
Asia/Kabul
Asia/Kamchatka
Asia/Karachi
Asia/Kashgar
Asia/Katmandu
Asia/Krasnoyarsk
Asia/Kuala_Lumpur
Asia/Kuching
Asia/Kuwait
Asia/Macao
Asia/Macau
Asia/Magadan
Asia/Makassar
Asia/Manila
Asia/Muscat
Asia/Nicosia
Asia/Novosibirsk
Asia/Omsk
Asia/Oral
Asia/Phnom_Penh
Asia/Pontianak
Asia/Pyongyang
Asia/Qatar
Asia/Qyzylorda
Asia/Rangoon
Asia/Riyadh
Asia/Riyadh87
Asia/Riyadh88
Asia/Riyadh89
Asia/Saigon
Asia/Sakhalin
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Tel_Aviv
Asia/Thimbu
Asia/Thimphu
Asia/Tokyo
Asia/Ujung_Pandang
Asia/Ulaanbaatar
Asia/Ulan_Bator
Asia/Urumqi
Asia/Vientiane
Asia/Vladivostok
Asia/Yakutsk
Asia/Yekaterinburg
Asia/Yerevan
Atlantic/Azores
Atlantic/Bermuda
Atlantic/Canary
Atlantic/Cape_Verde
Atlantic/Faeroe
Atlantic/Faroe
Atlantic/Jan_Mayen
Atlantic/Madeira
Atlantic/Reykjavik
Atlantic/South_Georgia
Atlantic/St_Helena
Atlantic/Stanley
Australia/ACT
Australia/Adelaide
Australia/Brisbane
Australia/Broken_Hill
Australia/Canberra
Australia/Currie
Australia/Darwin
Australia/Eucla
Australia/Hobart
Australia/LHI
Australia/Lindeman
Australia/Lord_Howe
Australia/Melbourne
Australia/NSW
Australia/North
Australia/Perth
Australia/Queensland
Australia/South
Australia/Sydney
Australia/Tasmania
Australia/Victoria
Australia/West
Australia/Yancowinna
Brazil/Acre
Brazil/DeNoronha
Brazil/East
Brazil/West
CET
CST6CDT
Canada/Atlantic
Canada/Central
Canada/East-Saskatchewan
Canada/Eastern
Canada/Mountain
Canada/Newfoundland
Canada/Pacific
Canada/Saskatchewan
Canada/Yukon
Chile/Continental
Chile/EasterIsland
Cuba
EET
EST
EST5EDT
Egypt
Eire
Etc/GMT
Etc/GMT+0
Etc/GMT+1
Etc/GMT+10
Etc/GMT+11
Etc/GMT+12
Etc/GMT+2
Etc/GMT+3
Etc/GMT+4
Etc/GMT+5
Etc/GMT+6
Etc/GMT+7
Etc/GMT+8
Etc/GMT+9
Etc/GMT-0
Etc/GMT-1
Etc/GMT-10
Etc/GMT-11
Etc/GMT-12
Etc/GMT-13
Etc/GMT-14
Etc/GMT-2
Etc/GMT-3
Etc/GMT-4
Etc/GMT-5
Etc/GMT-6
Etc/GMT-7
Etc/GMT-8
Etc/GMT-9
Etc/GMT0
Etc/Greenwich
Etc/UCT
Etc/UTC
Etc/Universal
Etc/Zulu
Europe/Amsterdam
Europe/Andorra
Europe/Athens
Europe/Belfast
Europe/Belgrade
Europe/Berlin
Europe/Bratislava
Europe/Brussels
Europe/Bucharest
Europe/Budapest
Europe/Chisinau
Europe/Copenhagen
Europe/Dublin
Europe/Gibraltar
Europe/Guernsey
Europe/Helsinki
Europe/Isle_of_Man
Europe/Istanbul
Europe/Jersey
Europe/Kaliningrad
Europe/Kiev
Europe/Lisbon
Europe/Ljubljana
Europe/London
Europe/Luxembourg
Europe/Madrid
Europe/Malta
Europe/Mariehamn
Europe/Minsk
Europe/Monaco
Europe/Moscow
Europe/Nicosia
Europe/Oslo
Europe/Paris
Europe/Podgorica
Europe/Prague
Europe/Riga
Europe/Rome
Europe/Samara
Europe/San_Marino
Europe/Sarajevo
Europe/Simferopol
Europe/Skopje
Europe/Sofia
Europe/Stockholm
Europe/Tallinn
Europe/Tirane
Europe/Tiraspol
Europe/Uzhgorod
Europe/Vaduz
Europe/Vatican
Europe/Vienna
Europe/Vilnius
Europe/Volgograd
Europe/Warsaw
Europe/Zagreb
Europe/Zaporozhye
Europe/Zurich
Factory
GB
GB-Eire
GMT
GMT+0
GMT-0
GMT0
Greenwich
HST
Hongkong
Iceland
Indian/Antananarivo
Indian/Chagos
Indian/Christmas
Indian/Cocos
Indian/Comoro
Indian/Kerguelen
Indian/Mahe
Indian/Maldives
Indian/Mauritius
Indian/Mayotte
Indian/Reunion
Iran
Israel
Jamaica
Japan
Kwajalein
Libya
MET
MST
MST7MDT
Mexico/BajaNorte
Mexico/BajaSur
Mexico/General
Mideast/Riyadh87
Mideast/Riyadh88
Mideast/Riyadh89
NZ
NZ-CHAT
Navajo
PRC
PST8PDT
Pacific/Apia
Pacific/Auckland
Pacific/Chatham
Pacific/Easter
Pacific/Efate
Pacific/Enderbury
Pacific/Fakaofo
Pacific/Fiji
Pacific/Funafuti
Pacific/Galapagos
Pacific/Gambier
Pacific/Guadalcanal
Pacific/Guam
Pacific/Honolulu
Pacific/Johnston
Pacific/Kiritimati
Pacific/Kosrae
Pacific/Kwajalein
Pacific/Majuro
Pacific/Marquesas
Pacific/Midway
Pacific/Nauru
Pacific/Niue
Pacific/Norfolk
Pacific/Noumea
Pacific/Pago_Pago
Pacific/Palau
Pacific/Pitcairn
Pacific/Ponape
Pacific/Port_Moresby
Pacific/Rarotonga
Pacific/Saipan
Pacific/Samoa
Pacific/Tahiti
Pacific/Tarawa
Pacific/Tongatapu
Pacific/Truk
Pacific/Wake
Pacific/Wallis
Pacific/Yap
Poland
Portugal
ROC
ROK
Singapore
Turkey
UCT
US/Alaska
US/Aleutian
US/Arizona
US/Central
US/East-Indiana
US/Eastern
US/Hawaii
US/Indiana-Starke
US/Michigan
US/Mountain
US/Pacific
US/Pacific-New
US/Samoa
UTC
Universal
W-SU
WET
Zulu

SocializerMenefante Del.icio.us Digg Ver los comentarios

Solucionar problemas de huso horario con PHP

Por Saiyine Enviar correo el 2007-06-21 02:51:36 - Secciones:  PHP  - Enlace permanente: 771

A veces, el servidor que contiene nuestras paginas web está situado en la otra punta del mundo, lo que, entre otras cosas, hace que todo lo relacionado con la hora y la fecha se vea afectado por los diferentes husos horarios.

Para que en vuestra página no ponga que escribis los post de madrugada cuando en realidad los mandais desde el trabajo, aqui teneis un ejemplo en PHP de como corregir el huso horario sobre el que vuestra página debe trabajar.

<?php

$now = time();

echo "La hora del servidor es: " . date ("H:i, l j F Y", $now)."<br />";

putenv("TZ=Europe/Madrid");

echo "Y la hora en España es: " . date ("H:i, l j F Y", $now) . "<br />";

?>

De paso aqui teneis una lista con todos los husos horarios para que hagais experimentos o simplemente por curiosear.

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Kampala
Africa/Khartoum
Africa/Kigali
Africa/Kinshasa
Africa/Lagos
Africa/Libreville
Africa/Lome
Africa/Luanda
Africa/Lubumbashi
Africa/Lusaka
Africa/Malabo
Africa/Maputo
Africa/Maseru
Africa/Mbabane
Africa/Mogadishu
Africa/Monrovia
Africa/Nairobi
Africa/Ndjamena
Africa/Niamey
Africa/Nouakchott
Africa/Ouagadougou
Africa/Porto-Novo
Africa/Sao_Tome
Africa/Timbuktu
Africa/Tripoli
Africa/Tunis
Africa/Windhoek
America/Adak
America/Anchorage
America/Anguilla
America/Antigua
America/Araguaina
America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/ComodRivadavia
America/Argentina/Cordoba
America/Argentina/Jujuy
America/Argentina/La_Rioja
America/Argentina/Mendoza
America/Argentina/Rio_Gallegos
America/Argentina/San_Juan
America/Argentina/Tucuman
America/Argentina/Ushuaia
America/Aruba
America/Asuncion
America/Atikokan
America/Atka
America/Bahia
America/Barbados
America/Belem
America/Belize
America/Blanc-Sablon
America/Boa_Vista
America/Bogota
America/Boise
America/Buenos_Aires
America/Cambridge_Bay
America/Campo_Grande
America/Cancun
America/Caracas
America/Catamarca
America/Cayenne
America/Cayman
America/Chicago
America/Chihuahua
America/Coral_Harbour
America/Cordoba
America/Costa_Rica
America/Cuiaba
America/Curacao
America/Danmarkshavn
America/Dawson
America/Dawson_Creek
America/Denver
America/Detroit
America/Dominica
America/Edmonton
America/Eirunepe
America/El_Salvador
America/Ensenada
America/Fort_Wayne
America/Fortaleza
America/Glace_Bay
America/Godthab
America/Goose_Bay
America/Grand_Turk
America/Grenada
America/Guadeloupe
America/Guatemala
America/Guayaquil
America/Guyana
America/Halifax
America/Havana
America/Hermosillo
America/Indiana/Indianapolis
America/Indiana/Knox
America/Indiana/Marengo
America/Indiana/Petersburg
America/Indiana/Vevay
America/Indiana/Vincennes
America/Indiana/Winamac
America/Indianapolis
America/Inuvik
America/Iqaluit
America/Jamaica
America/Jujuy
America/Juneau
America/Kentucky/Louisville
America/Kentucky/Monticello
America/Knox_IN
America/La_Paz
America/Lima
America/Los_Angeles
America/Louisville
America/Maceio
America/Managua
America/Manaus
America/Martinique
America/Mazatlan
America/Mendoza
America/Menominee
America/Merida
America/Mexico_City
America/Miquelon
America/Moncton
America/Monterrey
America/Montevideo
America/Montreal
America/Montserrat
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
America/North_Dakota/Center
America/North_Dakota/New_Salem
America/Panama
America/Pangnirtung
America/Paramaribo
America/Phoenix
America/Port-au-Prince
America/Port_of_Spain
America/Porto_Acre
America/Porto_Velho
America/Puerto_Rico
America/Rainy_River
America/Rankin_Inlet
America/Recife
America/Regina
America/Resolute
America/Rio_Branco
America/Rosario
America/Santiago
America/Santo_Domingo
America/Sao_Paulo
America/Scoresbysund
America/Shiprock
America/St_Johns
America/St_Kitts
America/St_Lucia
America/St_Thomas
America/St_Vincent
America/Swift_Current
America/Tegucigalpa
America/Thule
America/Thunder_Bay
America/Tijuana
America/Toronto
America/Tortola
America/Vancouver
America/Virgin
America/Whitehorse
America/Winnipeg
America/Yakutat
America/Yellowknife
Antarctica/Casey
Antarctica/Davis
Antarctica/DumontDUrville
Antarctica/Mawson
Antarctica/McMurdo
Antarctica/Palmer
Antarctica/Rothera
Antarctica/South_Pole
Antarctica/Syowa
Antarctica/Vostok
Arctic/Longyearbyen
Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau
Asia/Aqtobe
Asia/Ashgabat
Asia/Ashkhabad
Asia/Baghdad
Asia/Bahrain
Asia/Baku
Asia/Bangkok
Asia/Beirut
Asia/Bishkek
Asia/Brunei
Asia/Calcutta
Asia/Choibalsan
Asia/Chongqing
Asia/Chungking
Asia/Colombo
Asia/Dacca
Asia/Damascus
Asia/Dhaka
Asia/Dili
Asia/Dubai
Asia/Dushanbe
Asia/Gaza
Asia/Harbin
Asia/Hong_Kong
Asia/Hovd
Asia/Irkutsk
Asia/Istanbul
Asia/Jakarta
Asia/Jayapura
Asia/Jerusalem
Asia/Kabul
Asia/Kamchatka
Asia/Karachi
Asia/Kashgar
Asia/Katmandu
Asia/Krasnoyarsk
Asia/Kuala_Lumpur
Asia/Kuching
Asia/Kuwait
Asia/Macao
Asia/Macau
Asia/Magadan
Asia/Makassar
Asia/Manila
Asia/Muscat
Asia/Nicosia
Asia/Novosibirsk
Asia/Omsk
Asia/Oral
Asia/Phnom_Penh
Asia/Pontianak
Asia/Pyongyang
Asia/Qatar
Asia/Qyzylorda
Asia/Rangoon
Asia/Riyadh
Asia/Riyadh87
Asia/Riyadh88
Asia/Riyadh89
Asia/Saigon
Asia/Sakhalin
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Tel_Aviv
Asia/Thimbu
Asia/Thimphu
Asia/Tokyo
Asia/Ujung_Pandang
Asia/Ulaanbaatar
Asia/Ulan_Bator
Asia/Urumqi
Asia/Vientiane
Asia/Vladivostok
Asia/Yakutsk
Asia/Yekaterinburg
Asia/Yerevan
Atlantic/Azores
Atlantic/Bermuda
Atlantic/Canary
Atlantic/Cape_Verde
Atlantic/Faeroe
Atlantic/Faroe
Atlantic/Jan_Mayen
Atlantic/Madeira
Atlantic/Reykjavik
Atlantic/South_Georgia
Atlantic/St_Helena
Atlantic/Stanley
Australia/ACT
Australia/Adelaide
Australia/Brisbane
Australia/Broken_Hill
Australia/Canberra
Australia/Currie
Australia/Darwin
Australia/Eucla
Australia/Hobart
Australia/LHI
Australia/Lindeman
Australia/Lord_Howe
Australia/Melbourne
Australia/NSW
Australia/North
Australia/Perth
Australia/Queensland
Australia/South
Australia/Sydney
Australia/Tasmania
Australia/Victoria
Australia/West
Australia/Yancowinna
Brazil/Acre
Brazil/DeNoronha
Brazil/East
Brazil/West
CET
CST6CDT
Canada/Atlantic
Canada/Central
Canada/East-Saskatchewan
Canada/Eastern
Canada/Mountain
Canada/Newfoundland
Canada/Pacific
Canada/Saskatchewan
Canada/Yukon
Chile/Continental
Chile/EasterIsland
Cuba
EET
EST
EST5EDT
Egypt
Eire
Etc/GMT
Etc/GMT+0
Etc/GMT+1
Etc/GMT+10
Etc/GMT+11
Etc/GMT+12
Etc/GMT+2
Etc/GMT+3
Etc/GMT+4
Etc/GMT+5
Etc/GMT+6
Etc/GMT+7
Etc/GMT+8
Etc/GMT+9
Etc/GMT-0
Etc/GMT-1
Etc/GMT-10
Etc/GMT-11
Etc/GMT-12
Etc/GMT-13
Etc/GMT-14
Etc/GMT-2
Etc/GMT-3
Etc/GMT-4
Etc/GMT-5
Etc/GMT-6
Etc/GMT-7
Etc/GMT-8
Etc/GMT-9
Etc/GMT0
Etc/Greenwich
Etc/UCT
Etc/UTC
Etc/Universal
Etc/Zulu
Europe/Amsterdam
Europe/Andorra
Europe/Athens
Europe/Belfast
Europe/Belgrade
Europe/Berlin
Europe/Bratislava
Europe/Brussels
Europe/Bucharest
Europe/Budapest
Europe/Chisinau
Europe/Copenhagen
Europe/Dublin
Europe/Gibraltar
Europe/Guernsey
Europe/Helsinki
Europe/Isle_of_Man
Europe/Istanbul
Europe/Jersey
Europe/Kaliningrad
Europe/Kiev
Europe/Lisbon
Europe/Ljubljana
Europe/London
Europe/Luxembourg
Europe/Madrid
Europe/Malta
Europe/Mariehamn
Europe/Minsk
Europe/Monaco
Europe/Moscow
Europe/Nicosia
Europe/Oslo
Europe/Paris
Europe/Podgorica
Europe/Prague
Europe/Riga
Europe/Rome
Europe/Samara
Europe/San_Marino
Europe/Sarajevo
Europe/Simferopol
Europe/Skopje
Europe/Sofia
Europe/Stockholm
Europe/Tallinn
Europe/Tirane
Europe/Tiraspol
Europe/Uzhgorod
Europe/Vaduz
Europe/Vatican
Europe/Vienna
Europe/Vilnius
Europe/Volgograd
Europe/Warsaw
Europe/Zagreb
Europe/Zaporozhye
Europe/Zurich
Factory
GB
GB-Eire
GMT
GMT+0
GMT-0
GMT0
Greenwich
HST
Hongkong
Iceland
Indian/Antananarivo
Indian/Chagos
Indian/Christmas
Indian/Cocos
Indian/Comoro
Indian/Kerguelen
Indian/Mahe
Indian/Maldives
Indian/Mauritius
Indian/Mayotte
Indian/Reunion
Iran
Israel
Jamaica
Japan
Kwajalein
Libya
MET
MST
MST7MDT
Mexico/BajaNorte
Mexico/BajaSur
Mexico/General
Mideast/Riyadh87
Mideast/Riyadh88
Mideast/Riyadh89
NZ
NZ-CHAT
Navajo
PRC
PST8PDT
Pacific/Apia
Pacific/Auckland
Pacific/Chatham
Pacific/Easter
Pacific/Efate
Pacific/Enderbury
Pacific/Fakaofo
Pacific/Fiji
Pacific/Funafuti
Pacific/Galapagos
Pacific/Gambier
Pacific/Guadalcanal
Pacific/Guam
Pacific/Honolulu
Pacific/Johnston
Pacific/Kiritimati
Pacific/Kosrae
Pacific/Kwajalein
Pacific/Majuro
Pacific/Marquesas
Pacific/Midway
Pacific/Nauru
Pacific/Niue
Pacific/Norfolk
Pacific/Noumea
Pacific/Pago_Pago
Pacific/Palau
Pacific/Pitcairn
Pacific/Ponape
Pacific/Port_Moresby
Pacific/Rarotonga
Pacific/Saipan
Pacific/Samoa
Pacific/Tahiti
Pacific/Tarawa
Pacific/Tongatapu
Pacific/Truk
Pacific/Wake
Pacific/Wallis
Pacific/Yap
Poland
Portugal
ROC
ROK
Singapore
Turkey
UCT
US/Alaska
US/Aleutian
US/Arizona
US/Central
US/East-Indiana
US/Eastern
US/Hawaii
US/Indiana-Starke
US/Michigan
US/Mountain
US/Pacific
US/Pacific-New
US/Samoa
UTC
Universal
W-SU
WET
Zulu

SocializerMenefante Del.icio.us Digg Ver los comentarios

Pings XMLRPC con PHP super sencillos

Por Saiyine Enviar correo el 2007-04-29 05:13:35 - Secciones:  PRINCIPAL PHP PROGRAMACION FOTOS  - Enlace permanente: 759

¡Que ven mis ojos, si Mayo ya está aquí! Y además en menudas fechas caen el 1 y el 2, martes y miercoles, fiesta nacional el primero y madrileña el segundo, lo que unidas a una más que generosa política de puentes de mis empleadores, hacen que me vaya a pegar cinco dias sin pegar un palo al agua, y por el módico precio de aguantar los tremendos problemas de tráfico de la autovia que me separa de mi tierra.

Bueno, en realidad eso de estar sin dar ni golpe tampoco es que vaya mucho conmigo, así que voy a aprovechar para desfacer todos los entuertos que pueda en la página, empezando por una antiquisima petición de Yhandros que ha resultado la mar de simple: el enlace de comentar ya va directo a los comentarios. En realidad a mi me da igual, o incluso prefiero tener delante el texto que voy a mejorar con mis comentarios de calidad, pero si el vulgo lo demanda, que así sea.

Otra mejora que tenia en mente desde tiempos antediluvianos era añadir la capacidad de hacer pings XMLRPC...

Ya, ya sé que todos sabeis de sobra de que hablo, pero por si acaso alguien ha llegado tarde o no tiene en la mesilla de noche mi último bestseller "En la cama con Saiyine" debo contar que, resumiendo infinitamente, hacer ping es hacerse notar.

No sé de donde viene la equivalencia, aunque apostaria a un origen basado en los sonares activos: los típicos sonidos de las pelis de submarinos ¡PING! ¡PONG!, que no son más que una versión burra de la ecolocalización de los morciguillos. De verdad que no me quiero liar, aunque ya me conoceis y podria llenar hojas y hojas con los problemas que los sonares activos les causan a los cetaceos, los jueguecitos americanos y sovieticos en la guerra fria con los sonares, las otras aplicaciones informaticas que utilizan el concepto, la equivalencia física con otros sistemas similares como el radar o el lidar, o las ventajas de los sonares pasivos arrastrados, entiendo que todo eso os da igual y prefiero no espesar mucho la entrada.

Me limitaré a decir que hacer ping en el contexto de las páginas web es mandar una señal a otras webs diciendo, hey, que tengo un rollo nuevo, y esperar recibir el lógico pong de esas webs confirmando que han actualizado sus enlaces con la nueva información.

Los que useis Wordpress o basuras similares supongo que solo tendreis que bajaros el plujin adecuado y tan contentos, pero los que, como yo, prefieren que su página siga siendo suya al ciento por ciento, no estar a la merced de errores ajenos, o simplemente que les guste programar, estabamos abonados a usar librerias extrañas para hacer algo que en realidad se me antojaba sencillísimo: enviar una petición web con una pizca de XML.

¿Solo para esa chorrada tengo que liarme con obtusas librerias experimentales??? Eso no va conmigo.

Así que en cuanto he tenido un rato, me he puesto al tema y lo he conseguido en unas poquisimas lineas. Ni siquiera he tenido que montarme historias de sockets como pensaba en un principio, los simples manejadores del PHP, que permiten acceder a una url como si fuera un fichero local me lo han dado todo practicamente hecho:

<?php

function ping($url)
{
  $params['http']['method'] = 'POST';
  $params['http']['content'] = '<?xml version="1.0"?>
<methodCall>
  <methodName>weblogUpdates.ping</methodName>
  <params>
    <param>
      <value>YOUR SITE TITLE</value>
    </param>
    <param>
      <value>http://YOUR BLOG URL</value>
    </param>
  </params>
</methodCall>';
  $params['http']['header'] = 'Content-Type: text/xml';
  $ctx = stream_context_create($params);
  $file = @fopen($url, 'rb', false, $ctx);
  if ($file)
  {
    $respuesta = @stream_get_contents($file);
  }
  return $respuesta;
}

echo ping('http://rpc.technorati.com/rpc/ping');

?>

Sencillisimo, ¿verdad?

Este PHP avisa a la conocida página technorati de que deberia echarle un vistazo a nuestra página. Lo suyo seria ejecutarlo cada vez que escribais un rollo en vuestras páginas, una vez actualizada la base de datos, y dejar que las visitas lleguen a trillones en busca de novedades.

Naturalmente, hay montones de páginas que se dedican simplemente a ser listas de las actualizaciones de otras como las nuestras, lamentablemente, tengo los enlaces en mi maquina portable, en cuanto la monte mando otro rollo con listas de direcicones a las que hacer ping para que vuestros blogs sean ultrafamosos y estén supervitaminados e hipermineralizados.

SocializerMenefante Del.icio.us Digg Ver los comentarios

Storing objects in PHP with serialize

Por Saiyine Enviar correo el 2006-10-25 02:50:27 - Secciones:  PHP ENGLISH  - Enlace permanente: 711

Dreamhost

Serialization is the process of converting some object into an easy to manage string, maintaining the ability of inverting the process and obtaining the object back from the string.

So, we could convert database rows into text lines in order to save the changes in a text file, save our program's objects when it ends and recover them at the next run, or create object persistence systems like caches.

With PHP is really easy, because we have the runtime function serialize:

<?
  $vector
["hola"]="Epa{}";
  
$vector["electric"]="Head";

  
print_r($vector);
  
$temporal=serialize($vector);

  echo 
$temporal."\n";
  
$matrix=unserialize($temporal);

  
print_r($matrix);
?>

Output:

Array
(
   [hola] => Epa{}
   [electric] => Head
)
a:2:{s:4:"hola";s:5:"Epa{}";s:8:"electric";s:4:"Head";}
Array
(
   [hola] => Epa{}
   [electric] => Head
)

SocializerMenefante Del.icio.us Digg Ver los comentarios

Guardar objetos en PHP con serialize

Por Saiyine Enviar correo el 2006-10-25 02:49:52 - Secciones:  PHP  - Enlace permanente: 710

Dreamhost

Serializar es el proceso de convertir algún objeto en una cadena para manejarla comodamente, reteniendo la capacidad de poder volver a invertir el proceso y obtener el objeto de nuevo a partir de la cadena.

Así, podriamos convertir tuplas de bases datos en lineas de un fichero de texto para guardar los cambios, almacenar los objetos que está usando nuestro programa al acabar y recuperarlos al arrancar, o crear sistemas basados en persistencia de objetos como cachés y demás.

En PHP es sencillisimo, ya que contamos con la función de biblioteca serialize:

<?
  $vector
["hola"]="Epa{}";
  
$vector["electric"]="Head";

  
print_r($vector);
  
$temporal=serialize($vector);

  echo 
$temporal."\n";
  
$matrix=unserialize($temporal);

  
print_r($matrix);
?>

Salida:

Array
(
   [hola] => Epa{}
   [electric] => Head
)
a:2:{s:4:"hola";s:5:"Epa{}";s:8:"electric";s:4:"Head";}
Array
(
   [hola] => Epa{}
   [electric] => Head
)

SocializerMenefante Del.icio.us Digg Ver los comentarios

¡Guau!

Por Saiyine Enviar correo el 2006-01-09 00:54:00 - Secciones:  PHP PRINCIPAL  - Enlace permanente: 649

En informatica, un Easter Egg, o Huevo de Pascua, es una broma, normalmente más o menos secreta, introducida por los programadores en sus proyectos.

Este es un ejemplo bastante claro: añade la siguiente cadena de texto, tal cual, a cualquier url terminada en la extension .php, y obtendrás la foto de uno de los principales asesores del lenguaje PHP.

?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

Sin ir más lejos, el resultado de añadirlo aqui.

SocializerMenefante Del.icio.us Digg Ver los comentarios

Más efecto Slashdot

Por Saiyine Enviar correo el 2005-12-19 23:05:00 - Secciones:  PHP IDEAS  - Enlace permanente: 635

Dreamhost

Estaba pensando el otro dia que una buena manera de sobrevivir al efecto slashdot podria ser cambiar las direcciones de las imagenes para que proviniesen de una cache Coral, pero... ¿Y si cambiamos la página entera?!?!

Seria tan simple como, dada una condición como encontrar la palabra slashdot en el servidor del referer o superar un cierto número de visitas diarias, no generar la página sino enviar un header como el siguiente:

<?

  header
("Location: http://".$HTTP_HOST.".nyud.net:8090".$PHP_SELF);
  die();  

?>

¿Funcionaria? ¿Algún valiente que lo pruebe en una página y nos cuente que pasa, por ejemplo, con los formularios?

SocializerMenefante Del.icio.us Digg Ver los comentarios

Forzando las probabilidades

Por Saiyine Enviar correo el 2005-11-22 16:20:00 - Secciones:  PHP  - Enlace permanente: 603

Dreamhost

Me gusta que en mis páginas haya contenidos que cambien de una visita a otra, para aumentar la sensación de dinamismo, y una forma de conseguirlo es usar el azar, por ejemplo, mostrando unas secciones u otras.

Pero siempre habrá cosas que nos interese que se muestren más a menudo que otras, o fondos que nos gusten más que otros: ahí entra el decirle al programa "quiero que esto salga por pantalla en una de cada cinco visitas, mientras que esto, en tres de cada cuatro".

Pues nada más fácil con el código que os muestro a continuación, incluye ejemplo de un evento que queremos que salte un 25% de las veces.

<?

srand
();

function
unadecada($una,$cada)
{
    if (
rand(1,$cada)<=$una)
    {
        return
true;
    } else
    {
        return
false;
    }
}

    
$total=0;
    for (
$i=1;$i<=10000;$i++)
    {
        if (
unadecada(1,4))
        {
            
$total++;
        }
    }

    echo
$total;

?>

SocializerMenefante Del.icio.us Digg Ver los comentarios

Generar un web bug

Por Saiyine Enviar correo el 2005-11-10 22:05:00 - Secciones:  PHP  - Enlace permanente: 595

Este código fuente devuelve un gif transparente de un pixel de alto y ancho, lo que se suele llamar un web bug. Es util para obtener funcionalidad web extra donde normalmente no la hay, como enlazar webs, obtener información de visitas a páginas, contadores...

Es tristemente famoso, o "infamoso" como dicen los anglosajones, por ser uno de los metodos favoritos de los spammers para saber si has leido el correo.

<?
  header
("Content-type: image/gif");
  echo 
pack("H*", "47494638396101000100800000ffffffffffff21f904010a000100", "2c00000000010001000002024c01003b");
?>

SocializerMenefante Del.icio.us Digg Ver los comentarios

icat, volcando ficheros de red

Por Saiyine Enviar correo el 2005-06-11 00:20:00 - Secciones:  PHP  - Enlace permanente: 396

Dreamhost

Un sencillisimo script que simula el comando cat de linux, pero añadiendo la posibilidad de volcar por la salida standard ficheros situados en páginas web transparentemente.

#!/usr/bin/php <? foreach ($argv as $value) { if ($value != $argv[0]) { echo join("",@file($value)); } } ?>

SocializerMenefante Del.icio.us Digg Ver los comentarios

Guiones de linea de comandos

Por Saiyine Enviar correo el 2005-06-02 23:53:00 - Secciones:  PHP  - Enlace permanente: 375

Dreamhost

Comenzamos la sección de PHP con un código realmente sencillito que os mostrará como recorrer un vector y usar php como un potente, aunque algo lento, lenguaje de script de linea de comandos.

El programa en sí sirve para obtener las sumas sha1 de los parametros, o argumentos, con que se le llame.

#!/usr/bin/php <? foreach ($argv as $value) { if ($value != $argv[0]) { echo "$value -> ".sha1($value)."\n"; } } ?>

SocializerMenefante Del.icio.us Digg Ver los comentarios

Fondos de pantalla

. . .

Recomendamos


. . .

Descargas

  • ApagaPC
    apagapc241.exe  (3540)
  • LimpiaDocus
    LimpiaDocus001.exe  (2828)
  • RCM
    rcm001.zip  (2385)
  • Popmail
    popmail-0.4-psmn.tar.gz  (2463)
  • Manual de Delphi en PDF
    delphi_pdf.zip  (3052)
  • Evangelio del Perl
    Evangelio_del_perl.pdf  (2880)
  • Excel Simpsons
    Excel Simpsons  (3046)
  • . . .

    Proyectos Online

  • Saiyine Store
  • Kunowalls!!!
  • Fondos de pantalla
  • Picaday: imagenes sexys o chocantes.
  • Scarlett: fotos de Scarlett Johansson
  • WhatsmyIP: obtener tu IP pública
  • Uma Thurman: galeria de Uma Thurman
  • FunPics: imagenes graciosas
  • . . .

    Blogs

  • Por lo que más querais, no entreis a estos: Tapanez, Yhandros, Onez.

  • Otros en español: El Mundo Today, La libreta de Van Gaal, Chavalina, Kirai, Mundo Geek, Microsiervos.

  • Mis lecturas en guiri: Michael Yon, Coding Horror, YCombinator news, MySQL Performance, Slashdot.

    . . .
  • Utilidades

  •  Coral  (1235), cacheando webs
  •  Spam.la  (1467), correo de usar y tirar
  •  Mailinator  (1385), correo de usar y tirar
  •  Bug me not  (1246), absurdos registros di NO
  •  Trashmail  (1285), correo de usar y tirar

    . . .

  • Busquedas


    Varios ejemplos de lo que buscaban visitantes recientes:

    . . .

    Página web ©2001-2010 Saiyine generada en s, con 4777412 visitas en total, hoy (de un total de 0 previstas).

    . . .