CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
12.01.2010, 16:54:53
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 35
Beiträge: 47
|
|
String Durchsuchen und Ersetzen
Hallo zusammen!
Ich muss mit PHP eine XML Datei bearbeiten.
Leider steht mir auf dem Server simplexml nicht zur Verfügung.
Nun habe ich eine Idee wie ich mein Problem vielleicht lösen könnte, jedoch habe ich keine Ahnung wie ich das in PHP umsetzen kann.
Die XML Datei
HTML-Code:
<svg width="210" height="297">
<g id="doc">
<rect width="100%" height="100%" fill="white" id="background"/>
<text font-size="12" x="50" y="20" id="t1" style="stroke: rgb(0, 255, 0); stroke-width: 1px;">
Text der Laufzeit im Browser
</text>
<text font-size="12" x="80" y="40" id="t2">
generiert wurde
</text>
<g id="work_layer">
<rect width="84" height="84" x="150" y="87" fill="rgb(211,224,78)" fill-opacity="0.75" stroke="rgb(164,187,92)" stroke-opacity="0.5" id="obj_0" stroke-width="19" style=""/>
<rect width="40" height="40" x="223" y="287" fill="rgb(175,241,169)" fill-opacity="0.75" stroke="rgb(38,71,22)" stroke-opacity="0.5" id="obj_1" stroke-width="10" style=""/>
<rect width="39" height="39" x="317" y="225" fill="rgb(65,33,66)" fill-opacity="0.75" stroke="rgb(168,229,182)" stroke-opacity="0.5" id="obj_2" stroke-width="9"/>
</g>
</g>
</svg>
Nun habe ich die Idee die Datei mit PHP in einen String zu laden um diesen dann bearbeiten zu können.
Das Ziel ist es nun jede Zahl in den Attributen x, y, width und height mit1.5 zu multiplizieren.
Meine Frage an Euch ist nun ob es in PHP möglich ist eine Funktion zu erstellen die der folgende Beschreibung entspricht.
'Durchsuche die Zeichenkette nach einer Textstelle x="?", y="?", etc. lese die Zahl (?) aus multipliziere diese mit 1.5 schreibe das Ergebnis wieder zwischen die "" und gehen dann zur nächsten Textstelle x="?"...'
Schon mal vielen Dank.
|
12.01.2010, 19:10:17
|
Anfänger
|
|
Registriert seit: Aug 2008
Alter: 35
Beiträge: 124
|
|
AW: String Durchsuchen und Ersetzen
Ja.
Ich denke duch suchst preg_replace.
Ein gutes Tutorial für RegExp findest du HIER
__________________
Allergisch auf: - "Ich brauch ein Script für..."
- "...dringend..."
- Anfrage-->Antwort-->Nie wieder melden
|
13.01.2010, 09:19:50
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 35
Beiträge: 47
|
|
AW: String Durchsuchen und Ersetzen
Danke, ich schaus mir mal an.
|
13.01.2010, 11:46:52
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 35
Beiträge: 47
|
|
AW: String Durchsuchen und Ersetzen
PHP-Code:
$factor = 2;
$string = '[rect width="5" height="5" x="1" y="2"]<br />';
$string = preg_replace("([0-9])", "test", $string);
Nun suche ich jede Zahl und ersetze diese durch den Text "test".
Wie kann ich nun die gesuchte Zahl mal einen Faktor rechnen?
|
13.01.2010, 11:58:14
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: String Durchsuchen und Ersetzen
Wenn Du die Zahl ersetzt hast, wie /warum möchtest Du sie dann noch mit einem Faktor multiplizieren?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
13.01.2010, 12:08:19
|
Anfänger
|
|
Registriert seit: Aug 2008
Alter: 35
Beiträge: 124
|
|
AW: String Durchsuchen und Ersetzen
Du kannst in deiner preg_repl auch auf die Suchergebnisse selbst wieder zurückgreiffen. Somit kannst du also den gefundenen Wert mit einer konstanten multiplizieren und wieder einsetzen.
Im Tutorial findest du diese Funktionalität HIER unter "Unterausdrücke im Ersatz referenzieren" und "preg_replace() und Modifier e".
EDIT: Eine andere Möglich wäre auch der einsatz von preg_replace_callback
__________________
Allergisch auf: - "Ich brauch ein Script für..."
- "...dringend..."
- Anfrage-->Antwort-->Nie wieder melden
|
13.01.2010, 12:10:25
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 35
Beiträge: 47
|
|
AW: String Durchsuchen und Ersetzen
Das war nur ein Beispiel dafür, dass ich alle Zahlen mit dem Suchmuster finde.
Ich bin nun so weit, dass ich die Zahl suchen kann und durch sich selbst ersetzen kann.
PHP-Code:
function zahl($zahl) { return $zahl; }
$string = preg_replace("#([0-9])#", zahl("$1") , $string);
Will ich nun aber die Zahl mit z.B. 2 Multiplizieren und dann Ersetzen kommt ein Fehler, bzw. eine Ergebnis von 0.
PHP-Code:
function zahl($zahl) { return $zahl * 2; }
$string = preg_replace("#([0-9])#", zahl("$1") , $string);
Ich habe nun die Zahl mit echo einmal ausgegeben und herausgefunden, dass hier nur der String $1 übergeben wird und nicht die Zahl die gesucht wurde. Kann ich den ausdruck $1 zu der gesuchten Zahl wandeln bevor ich diese an die Funktion übergebe?
@Xor Ich schau mal.
|
13.01.2010, 12:23:22
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 35
Beiträge: 47
|
|
AW: String Durchsuchen und Ersetzen
Meine Lösung sieht nun so aus:
PHP-Code:
function zahl($zahl) {
$zahl *= 2;
return $zahl;
}
$string = '[rect width="5" height="5" x="1" y="2"]<br />';
$factor = 2;
echo $string;
$string = preg_replace("#([0-9])#e", "zahl('$1')" , $string);
echo $string;
Vielen Dank an Euch!
|
13.01.2010, 13:34:09
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: String Durchsuchen und Ersetzen
Zitat:
Zitat von _squee_
Meine Lösung sieht nun so aus:
|
Hast Du Dir mal überlegt was Du machst wenn die Zahlen zwei- oder dreistellig sind?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
13.01.2010, 14:32:45
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 35
Beiträge: 47
|
|
AW: String Durchsuchen und Ersetzen
Das ist natürlich auch eine Anforderung.
Bei meinen Tests habe ich soeben bemerkt, dass es Probleme gibt.
Muss ich in dem Fall meinen Suchausdruck umschreiben?
Die höchst möglichste Zahl wird um die 600 sein. Reicht es dann wenn ich den Suchausdruck so definiere?
([1-600])
Edit: Habs ausprobiert klappt aber nicht.
Geändert von _squee_ (13.01.2010 um 15:01:49 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:53:02 Uhr.
|