Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Text ersetzen mit Hilfe von replaces“

C

COACH991

Guest

Hallo zusammen

Ich habe hier einen Turnierkalender von MyLeague.

Soweit wie:
[php:1:f2e614ca66]<?
$seite=file("http://www4.igl.net/cgi-bin/tourney/gencalendar.cgi?path=starlightpool");
for ($r=105;$r<= count($seite);$r++) { echo $seite[$r]; }
?>[/php:1:f2e614ca66]
habe ich den schon geändert.

Aber ich hätte gerne durch replace befehlen - so soll es gehen sagte mein Freund - z.B. das Datum auf deutsch.
Nur wie mache ich das nun?
Hab mir schon Haare dran ausgerissen :-(

Wäre über Hilfe sehr dankbar.

Gruß COACH

P.s. Hätte gerne das Englische Datum durch ein deutsches durch replace Befehl ersetzt
 

Eskayp

Something

In PHP gibt es im Wesentlichen 2 verschiedene Arten Text zu ersetzen. Einmal durch simple Vergleichsmethode und einmal durch s.g. "Reguläre Ausdrücke".

Zum simplen Suchen&Ersetzen benutzt man entweder str_replace oder strtr (oder auch substr_replace.

Mit str_replace kann man nach einem bestimmten String suchen und diesen durch einen anderen ersetzen, z.B.
[php:1:2c4998a232]str_replace('tom', 'tim', 'hallo tom');[/php:1:2c4998a232]
ergibt "hallo tim"...

strtr wurde eigentlich zum Suchen und Ersetzen von Zeichen entwickelt, kann aber mittlerweile auch Arrays als Parameter empfangen. Guck einfach in die Dokumentation, ist nicht schwierig...

Etwas schwieriger sind dagegen die Regulären Ausdrücke, von denen es auch noch zwei verschiedene gibt (mal so salopp daher gesagt). Dazu ließt Du Dir am Besten
und
Reguläre Ausdrücke Funktionen (Perl-kompatibel) durch.

Beides sind sehr mächtige Funktionen zum Suchen und Ersetzen, kosten einen aber manchmal auch ganz schön Nerven und Zeit :)

Viel Erfolg!

P.S. Topic gehört nach PHP verschoben...
 
C

COACH991

Guest

Danke für die Antwort, doch ist mir damit nicht geholfen. Auch nicht mit den Links.

Ich möchte das Datum einfach nur mit Arrays und Replacebefehlen ersetzen. Wie macht man das?

Der Typ , der es bei www.energyblue.de gemacht hat, hat es auch nur mit arrays und replaces gemacht.


Lieben Gruß Coach

P.s. Hoffe mir kann wer helfen !???!
 

10c

Unscharfe Maske

COACH991 schrieb:
P.s. Hoffe mir kann wer helfen !???!

Auf die Schnelle ist mir eine eher unelegante Lösung eingefallen.
Was vor allem daran liegt, dass ich immer wieder Schwierigkeiten mit regulären Ausdrücken habe... -.-

Aber es funktioniert und das ist ja die Hauptsache...

Aus
Monday, April 3, 2006
wird
Montag, 3.April 2006

[php:1:0b899fb04b]
<?php

$weekdays = array (
'Monday' => 'Montag',
'Tuesday' => 'Dienstag',
'Wednesday' => 'Mittwoch',
'Thursday' => 'Donnerstag',
'Friday' => 'Freitag',
'Saturday' => 'Samstag',
'Sunday' => 'Sonntag',
);

$month = array(
'January' => 'Januar',
'February' => 'Februar',
'March' => 'März',
'April' => 'April',
'May' => 'Mai',
'June' => 'Juni',
'July' => 'Juli',
'August' => 'August',
'September' => 'September',
'October' => 'Oktober',
'November' => 'November',
'December' => 'Dezember'
);

$trans = array();

foreach ($month as $en=>$de)
for ($i = 1; $i < 32; $i++)
$trans[sprintf('%s %d,', $en, $i)] = sprintf('%d.%s', $i, $de);

$trans = array_merge($trans, $weekdays);


$seite = file("http://www4.igl.net/cgi-bin/tourney/gencalendar.cgi?path=starlightpool");
for ($r = 105; $r <= count($seite); $r++)
{
echo sprintf("%s\n", strtr($seite[$r], $trans));
}

?>

[/php:1:0b899fb04b]


10c :)
 

10c

Unscharfe Maske

Nanu? Wo ist denn dein Beitrag hin?
Egal...

Hier nun der erweiterte Code um die Uhrzeit umzuwandeln oder andere Strings zu ersetzen.

Wenn du noch weitere Strings ersetzen möchtest, musst du den Array $misc entsprechend erweitern.

[php:1:402b8ba8b1]
function setHour($t, $p)
{
return (!strcmp($p, 'pm') && $t < 12 ? ($t + 12) : $t);
}
$pattern = '/(\d{1,2}):(\d{1,2})(pm|am)/e';
$replacement = "setHour(\\1, \\3).':\\2 Uhr'";


$weekdays = array (
'Monday' => 'Montag',
'Tuesday' => 'Dienstag',
'Wednesday' => 'Mittwoch',
'Thursday' => 'Donnerstag',
'Friday' => 'Freitag',
'Saturday' => 'Samstag',
'Sunday' => 'Sonntag',
);

$month = array(
'January' => 'Januar',
'February' => 'Februar',
'March' => 'M&rz',
'April' => 'April',
'May' => 'Mai',
'June' => 'Juni',
'July' => 'Juli',
'August' => 'August',
'September' => 'September',
'October' => 'Oktober',
'November' => 'November',
'December' => 'Dezember'
);

// array beliebig erweiterbar...
$misc = array(
'Location' => 'Ort',
'None' => ''
);

$trans = array();

foreach ($month as $en=>$de)
for ($i = 1; $i < 32; $i++)
$trans[sprintf('%s %d,', $en, $i)] = sprintf('%d.%s', $i, $de);


$trans = array_merge($trans, array_merge($weekdays, $misc));


$seite = file("http://www4.igl.net/cgi-bin/tourney/gencalendar.cgi?path=starlightpool");

for ($r = 105; $r <= count($seite); $r++)
echo sprintf("%s\n", strtr(preg_replace($pattern, $replacement, $seite[$r]), $trans));

?>
[/php:1:402b8ba8b1]

10c ;)
 

10c

Unscharfe Maske

[php:1:b360b4c9a5]
<?php

function setHour($t, $p)
{
return (!strcmp($p, 'pm') && $t < 12 ? ($t + 12) : $t);
}
$pattern = '/(\d{1,2}):(\d{1,2})(pm|am)/e';
$replacement = "setHour(\\1, \\3).':\\2 Uhr'";


$weekdays = array (
'Monday' => 'Montag',
'Tuesday' => 'Dienstag',
'Wednesday' => 'Mittwoch',
'Thursday' => 'Donnerstag',
'Friday' => 'Freitag',
'Saturday' => 'Samstag',
'Sunday' => 'Sonntag',
);

$month = array(
'January' => 'Januar',
'February' => 'Februar',
'March' => 'M&rz',
'April' => 'April',
'May' => 'Mai',
'June' => 'Juni',
'July' => 'Juli',
'August' => 'August',
'September' => 'September',
'October' => 'Oktober',
'November' => 'November',
'December' => 'Dezember'
);

// array beliebig erweiterbar...
$misc = array(
'Location' => 'Ort',
'None' => ''
);

$trans = array();

foreach ($month as $en=>$de)
for ($i = 1; $i < 32; $i++)
$trans[sprintf('%s %d,', $en, $i)] = sprintf('%d.%s', $i, $de);


$trans = array_merge($trans, array_merge($weekdays, $misc));


$seite = file("http://www4.igl.net/cgi-bin/tourney/gencalendar.cgi?path=freunde");

for ($r = 105; $r <= count($seite); $r++)
echo sprintf("%s\n", strtr(preg_replace($pattern, $replacement, $seite[$r]), $trans));

?>
[/php:1:b360b4c9a5]

Weitere Vorraussetzungen und Vorgehensweisen:
  1. Der Webserver auf dem sich deine Homepage befindet muss PHP unterstützen.
  2. Das Script selbst kopierst du so wie du es oben siehst komplett in eine reine Textdatei und speicherst es anschließend unter cal_pars.php ab.
  3. Das Script hochladen und via IFrame einbinden
    (Du kannst es selbstverständlich auch includen. Allerdings sind dann die zu schaffenden Vorrausetzungen ganz anderer Natur.
    Und ich gehe stark davon aus, dass du im Moment rein statisches HTML einsetzt... )

10c ;-)
 
C

COACH991

Guest

Wie mache ich das nun, das wenn ich auf einen Pfeil klicke, das dann nicht wieder der englische Kalender angezeigt wird sondern der deutsche weiterhin?

Include? Aber wie?

Gruß Chris
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.189
Beiträge
2.582.079
Mitglieder
67.258
Neuestes Mitglied
SaschMasch1312
Oben