ereg
Daniel
- php
Hi,
ich hab da mal eine frage und zwar kann mir jmd diesen ausdruck in einen
"standard" Windows suchbegriff umwandeln?
ereg("^.+@.+\..+$", $string)
entspricht das soviel wie "*@*.*"? eine wort erklärung ist auch OK also
entspricht das sowas wie "<ein bis unendlich zeichen>@<ein bis unendlich zeichen>.<ein bis unendlich zeichen>"?
MfG
puts "Hallo " + gets.chomp + "."
?> Daniel
=> Hallo Daniel.
ereg("^.+@.+\\..+$", $string)
Am Anfang (^) mindestens eines oder mehrere beliebige Zeichen (.+), dann ein „@“, gefolgt von wieder einem oder mehreren beliebigen Zeichen (.+), einem Backslash (\, escaped, da er sonst das Folgezeichen escapen würde), einem beliebigen Zeichen (.) und zuletzt eines oder mehrere beliebige Zeichen (.+) am Ende.
Ich hoffe, dass ich mich da nicht vertan habe.
Einen schönen Mittwoch noch.
Gruß, Ashura
Hi,
Ich hoffe, dass ich mich da nicht vertan habe.
anscheinend kennst du dich da etwas aus. auf der seite im php-manual
http://de2.php.net/manual/de/function.ereg.php
steht da leider nix dazu. allerdings verstehe ich nicht wozu man das Beispiel 1 gebrauchen soll?
$datum_dt = strftime("%d.%m.%Y",strtotime($datum));
formatiert doch viel einfach ein datum vom Format JJJJ-MM-TT in TT.MM.JJJJ, oder täusche ich mich da? allerdings würde ich diese funktion gerne etwas abgeändert verwenden um das ganze rückwerts zu tätigen, also TT.MM.JJJJ zu JJJJ-MM-TT.
if (ereg ("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4})", $date, $regs)) {
echo "$regs[3]-$regs[2]-$regs[1]";
} else {
echo "Ungültiges Datumsformat: $date";
}
Wäre dies so im ansatz richtig?
MfG
puts "Hallo " + gets.chomp + "."
?> Daniel
=> Hallo Daniel.
http://de2.php.net/manual/de/function.ereg.php
steht da leider nix dazu. allerdings verstehe ich nicht wozu man das Beispiel 1 gebrauchen soll?
Es dient nur zur Veranschaulichung, es gibt weitaus kürzere Methoden, das dort gewünschte zu bewerkstelligen, wie z. B....
$datum_dt = link:http://de2.php.net/manual/de/function.strftime.php@title=strftime;
> formatiert doch viel einfach ein datum vom Format JJJJ-MM-TT in TT.MM.JJJJ, oder täusche ich mich da?
... so. Und ja, da liegst du richtig.
> allerdings würde ich diese funktion gerne etwas abgeändert verwenden um das ganze rückwerts zu tätigen,
Und warum machst du dies nicht auch mit strftime?
> also TT.MM.JJJJ zu JJJJ-MM-TT.
> ~~~php
> if (ereg ("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4})", $date, $regs)) {
> echo "$regs[3]-$regs[2]-$regs[1]";
> } else {
> echo "Ungültiges Datumsformat: $date";
> }
>
Wäre dies so im ansatz richtig?
Mindestens 1, maximal 2 Zahlen, ein Punkt (ich bin mir nicht sicher, ob der escaped werden muss, damit er nicht auf „beliebiges Zeichen“ zutrifft),mindestens 1, maximal 2 Zahlen, ein Punkt und genau 4 Zahlen. Entspricht soweit deinem gewünschten Format.
Aber sag', warum probierst du es nicht einfach aus? ;-)
Einen schönen Mittwoch noch.
Gruß, Ashura
Hi,
Und warum machst du dies nicht auch mit strftime?
wie bekomm ich aus dem format TT.MM.JJJJ nen timestamp? mit welcher funktion?
Aber sag', warum probierst du es nicht einfach aus? ;-)
gute frage nächste frage, ich hab momentan halt nicht die zeit dazu. mir
ist nur eine etwas umständliche funktion zum umwandeln von TT.MM.JJJJ
in JJJJ-MM-TT in meiner function-libary aufgefallen und wenn es mit
dieser gehen würde wäre das ganze ja in ordnung. und vorallem wesentlich
platzsparender.
MfG
puts "Hallo " + gets.chomp + "."
?> Daniel
=> Hallo Daniel.
wie bekomm ich aus dem format TT.MM.JJJJ nen timestamp? mit welcher funktion?
gute frage nächste frage, ich hab momentan halt nicht die zeit dazu.
Das verstehe ich nicht. Du hast doch auch genug Zeit, hier nachzufragen. Eine Überprüfung deines Skriptes auf Praxistauglichkeit dauert nur ein paar Sekunden. (Upload, oder besser lokaler Webserver.)
mir
ist nur eine etwas umständliche funktion zum umwandeln von TT.MM.JJJJ
in JJJJ-MM-TT in meiner function-libary aufgefallen und wenn es mit
dieser gehen würde wäre das ganze ja in ordnung. und vorallem wesentlich
platzsparender.
Ausprobieren kann ich es selbst momentan auch nicht.
Einen schönen Mittwoch noch.
Gruß, Ashura
Hi,
wie bekomm ich aus dem format TT.MM.JJJJ nen timestamp? mit welcher funktion?
variant_date_to_timestamp?
hmm.. sieht nicht schlecht aus, aber was ist COM? ah nur für Windows
PHP, na dann kann ich das leider nicht verwenden? oder hab ichs falsch
verstanden?
Das verstehe ich nicht. Du hast doch auch genug Zeit, hier nachzufragen. Eine Überprüfung deines Skriptes auf Praxistauglichkeit dauert nur ein paar Sekunden. (Upload, oder besser lokaler Webserver.)
hab hier mal ein testscript, bis jetzt wurden alle fehlerhaften eingaben
rausgefiltert, vll kennt aber jmd eine mögliche fehlerhafte eingabe?!?
die man noch rausfiltern muss.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>New Document</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>Geben sie ein datum im Format TT.MM.JJJJ oder JJJJ-MM-TT</p>
<input type="text" name="datum" value="">
<input type="submit" name="submit" value="wandeln">
<?
function datum_deutsch($datum)
{
$datum_dt = strftime("%d.%m.%Y",strtotime($datum));
return $datum_dt;
}
function datum_mysql($datum)
{
if (ereg ("([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})", $datum, $regs))
{
$jahr = $regs[3];
$monat = $regs[2];
$tag = $regs[1];
if(checkdate($monat, $tag, $jahr))
{
$datum_sql = "$regs[3]-$regs[2]-$regs[1]";
$datum_sql = strftime("%Y-%m-%d",strtotime($datum_sql));
}
else
{
$datum_sql = false;
}
}
else
{
$datum_sql = false;
}
return $datum_sql;
}
if(isset($_POST['submit']))
{
if(datum_deutsch($_POST['datum']))
{
echo "<br>Das eingegebene Format gewandelt in TT.MM.JJJJ => ";
echo datum_deutsch($_POST['datum']);
}
elseif(datum_mysql($_POST['datum']))
{
echo "<br>Das eingegebene Format gewandelt in JJJJ-MM-TT => ";
echo datum_mysql($_POST['datum']);
}
else
{
echo "<br>Das eingegebene Format ($_POST[datum]) is ungültig";
}
}
?>
</form>
</body>
</html>
MfG
echo $begrüßung;
ereg("^.+@.+\\..+$", $string)
einem Backslash (\, escaped, da er sonst das Folgezeichen escapen würde), einem beliebigen Zeichen (.)
Ich hoffe, dass ich mich da nicht vertan habe.
Leider hast du dich vertan. Und zwar mit dem doppelten Backslash. Hier schlägt zuerst mal der in " eingeschlossene PHP-String zu und macht aus den beiden nur noch einen, und der lässt dann den nachfolgenden Punkt als ebensolchen in dem regulären Ausdruck zur Geltung kommen.
echo "$verabschiedung $name";
puts "Hallo " + gets.chomp + "."
?> dedlfix
=> Hallo dedlfix.
ereg("^.+@.+\\..+$", $string)
einem Backslash (\, escaped, da er sonst das Folgezeichen escapen würde), einem beliebigen Zeichen (.)
Leider hast du dich vertan. Und zwar mit dem doppelten Backslash. Hier schlägt zuerst mal der in " eingeschlossene PHP-String zu und macht aus den beiden nur noch einen, und der lässt dann den nachfolgenden Punkt als ebensolchen in dem regulären Ausdruck zur Geltung kommen.
Entschuldigung, aber habe ich das nicht geschrieben?
„\“ wird zu „\“ und damit kommt der Punkt seiner Bedeutung nach.
Einen schönen Mittwoch noch.
Gruß, Ashura
echo $begrüßung;
Entschuldigung, aber habe ich das nicht geschrieben?
Nö.
„\“ wird zu „\“
Hier kam nicht klar zur Geltung, dass der doppelte Backslash ein Problem der Stringdarstellung von PHP ist und nichts mit dem regulären Ausdruck zu tun hat. Für den regulären Ausdruck bleibt ein Backslash übrig.
Der darauf folgende Punkt kommt nicht seiner Bedeutung den er in einem regulären Ausdruck hat (Joker für ein beliebiges Zeichen) nach, sondern steht wegen des vorangehenden Backslashs als "echter" Punkt.
echo "$verabschiedung $name";
puts "Hallo " + gets.chomp + "."
?> dedlfix
=> Hallo dedlfix.
Hier kam nicht klar zur Geltung, dass der doppelte Backslash ein Problem der Stringdarstellung von PHP ist und nichts mit dem regulären Ausdruck zu tun hat. Für den regulären Ausdruck bleibt ein Backslash übrig.
Der darauf folgende Punkt kommt nicht seiner Bedeutung den er in einem regulären Ausdruck hat (Joker für ein beliebiges Zeichen) nach, sondern steht wegen des vorangehenden Backslashs als "echter" Punkt.
Aha, jetzt verstehe ich:
„\.“ -> „.“ -> „.“
Schwere Geburt, aber doch letzendlich gut gegangen. Danke für die Erleuchtung.
Einen schönen Mittwoch noch.
Gruß, Ashura