webForumDet fria alternativet

ereg död. Vad ska jag göra nu.

PHP

5 svar · 822 visningar · startad av Mr T

Medlem sedan maj 20071 061 inlägg
Frågan#1

Frågade nyligen hur man bytte ut eregi.

Behöver nu också hjälp med hur, och mot vad, jag ska byta följande kod-snutt.

ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2})", $date_time, $ymd_array_date);

Delar upp datumsträngen "2010-04-18 17:52:00" i en array med år, månad, dag, timme, minut och sekund.

Behöver nu en liknade funktion.

Medlem sedan maj 20012 237 inlägg
#2

php.net och preg_***

preg_match
preg_match_all
preg_replace

Medlem sedan juni 20014 290 inlägg
#3

Varför inte använda php's inbyggda funktioner för detta?

date_default_timezone_set('Europe/Stockholm');
setlocale("LC_ALL","swedish");

$r="2010-04-18 17:52:00";

$d=getdate(strtotime($r));

print_r($d);

Vilket skriver ut:

Array
(
    [seconds] => 0
    [minutes] => 52
    [hours] => 17
    [mday] => 18
    [wday] => 0
    [mon] => 4
    [year] => 2010
    [yday] => 107
    [weekday] => Sunday
    [month] => April
    [0] => 1271605920
)
Medlem sedan maj 20071 061 inlägg
#4

jme - Har läst på php.net, men frågan är hur man ska få exakt samma resultat, alltså en array, ut från någon av dessa funktioner.

GunnarD - Tack för tippset, dock vore det toppen om jag bara kunde snabbt byta ut "ereg" mot ett annat kommando/funktion då jag har denna på flera ställen.

Medlem sedan juni 20031 837 inlägg
#5

detta borde ge dig samma resultat

preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2})/", $date_time, $ymd_array_date);
Medlem sedan juni 20014 421 inlägg
#6

Mr T skrev:

jme - Har läst på php.net, men frågan är hur man ska få exakt samma resultat, alltså en array, ut från någon av dessa funktioner.

GunnarD - Tack för tippset, dock vore det toppen om jag bara kunde snabbt byta ut "ereg" mot ett annat kommando/funktion då jag har denna på flera ställen.

Du bör dock fundera på att refaktorera applikationen, ett regexp är onödig overhead och onödigt komplicerat för detta. Du kan skapa en funktion som tar datumsträngen, bygger upp arrayen som du vill ha och returnerar den.

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)