SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 12.01.2010, 16:54:53
_squee_ _squee_ ist offline
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.
Mit Zitat antworten
  #2  
Alt 12.01.2010, 19:10:17
Xor Xor ist offline
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
Mit Zitat antworten
  #3  
Alt 13.01.2010, 09:19:50
_squee_ _squee_ ist offline
Anfänger
 
Registriert seit: Aug 2009
Alter: 35
Beiträge: 47
AW: String Durchsuchen und Ersetzen

Danke, ich schaus mir mal an.
Mit Zitat antworten
  #4  
Alt 13.01.2010, 11:46:52
_squee_ _squee_ ist offline
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?
Mit Zitat antworten
  #5  
Alt 13.01.2010, 11:58:14
Benutzerbild von vt1816
vt1816 vt1816 ist offline
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!
Mit Zitat antworten
  #6  
Alt 13.01.2010, 12:08:19
Xor Xor ist offline
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
Mit Zitat antworten
  #7  
Alt 13.01.2010, 12:10:25
_squee_ _squee_ ist offline
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.
Mit Zitat antworten
  #8  
Alt 13.01.2010, 12:23:22
_squee_ _squee_ ist offline
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!
Mit Zitat antworten
  #9  
Alt 13.01.2010, 13:34:09
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: String Durchsuchen und Ersetzen

Zitat:
Zitat von _squee_ Beitrag anzeigen
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!
Mit Zitat antworten
  #10  
Alt 13.01.2010, 14:32:45
_squee_ _squee_ ist offline
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)
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Leerfelder in String ersetzen Dag PHP Grundlagen 9 29.01.2009 16:19:34
Durchsuchen von String Shimajiro PHP Grundlagen 4 15.05.2008 17:45:55
String durchsuchen Crach PHP für Fortgeschrittene und Experten 1 09.11.2004 15:09:54
String nach Zeichen durchsuchen Limbi PHP Grundlagen 12 11.11.2003 20:07:08
string nach schlagwort durchsuchen laaz PHP für Fortgeschrittene und Experten 9 05.05.2003 20:45:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:53:02 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt