Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: aikaleima preg_replacella tunnit minuutit

peg [25.09.2011 15:02:54]

#

miten preg_replacella voi muuttaa aikaleiman ajaksi tunnit : minuutit
noin olen yrittänyt vaan en osaa.

$hae = preg_replace("/[0-9]{10}/", date('H:i', \1), $hae);

Grez [25.09.2011 15:06:53]

#

Eikös toi date('H:i',$timestamp) tee sen suoraan ilman mitään preg_replacea?

Metabolix [25.09.2011 15:18:57]

#

Ehkä tarkoitus oli tulkita muun tekstin seassa olevat epämääräiset lukujonot aikaleimoiksi? Täytyy vain ihmetellä, miten ne ovat tekstin sekaan edes joutuneet.

Tuossa nyt on koko PHP:n syntaksi niin hakusessa, että varmaan jonkin alkeisoppaan lukemisesta olisi hyötyä. Ehkä tarkoitus oli, että date-kutsu olisi lainausmerkeissä ja sen sisällä vielä \1 hipsuissa, ja silloinkin lausekkeen lopusta puuttuu vielä se e-valitsin, jonka kanssa korvaava teksti ajettaisiin vielä PHP-koodina.

Usein on kyllä helpompaa käyttää preg_replace_callback-funktiota tällaisiin korvauksiin, jos tehtävä muunnos ei ole aivan äärimmäisen lyhyt.

peg [25.09.2011 17:21:44]

#

tämä ei mene läpi

<?php
$koe = "1012342345 tässä tekstiä";
$koe = preg_replace("/[0-9]{10}/e", date("H:i", '\0'), $koe);
?>

Grez [25.09.2011 17:30:18]

#

Oikeesti... ne kooditagit.. :(

peg kirjoitti:

$koe = "1012342345 tässä tekstiä";
$koe = preg_replace("/[0-9]{10}/e", date("H:i", '\0'), $koe);

pwc [25.09.2011 17:30:27]

#

https://www.php.net/preg_replace example #4, funktiokutsu lainausmerkkeihin ja regexp-muttujat vaativat tupla-escapen.

<?php
$koe = "1012342345 tässä tekstiä";
$koe = preg_replace("/[0-9]{10}/e", "date('H:i', '\\0')", $koe);

Kannattaa kuitenkin ihan tosissaan tutustua https://www.php.net/manual/en/function.preg-replace-callback.php -funktioon.

Grez [25.09.2011 17:32:00]

#

pwc ehti näköjään ehtikin jo tuossa välissä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta