Suchen und Ersetzen

jürgen-schulz

Grünschnabel
Hallo Forum,

nachdem das letzte Problem mit Eurer Hilfe super gelöst wurde brauche ich wieder mal Eure Hilfe.

Problemstellung:
Ich übergebe mit GET den Inhalt einer Variablen an eine per I-Frame eingebundene php Seite mit Formular. In dieser Variablen ist ein String mit Text und 1 bis 3 Bildern.
Der Text und nur das erste Bild soll in eine HTML-Mail eingebaut werden wenn das Formular abgeschickt wird. Da mir das Bild zu groß ist möchte ich es verkleinern aber nicht auf meinem Server speichern sondern ich denke als Anhang an die Mail mit versenden damit es in der Mail des Empfängers sofort zu sehen ist.

Wie kann man das Problem lösen? Wer kann mir da weiter helfen?

Der Inhalt der Variablen:
HTML:
<h3><u><b>Überschrift</b></u></h3>
<p><font color=#0000ff><b>Beschreibung:</b></font>
<div class='weblink' style='color:#007700'><b>Bla Bla Bla Bla Bla Bla Bla Bla </b></div>
<br>Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla
Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla ´
Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla 
Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla 
<br><br>
Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla 
<br>
<div style=text-align:center;>
<img src=http://www.seite.de/gallery/img/bilder/Bild_1.jpg width=395 height=296 border=0>
</div>

Vielen Dank schon mal für Eure Hilfe.
Gruß Jürgen
 
Um das Bild zu verkleinern, musst Du es erstmal auf den Server legen, mit der gdlib bearbeiten, und dann die eMail versenden.

Beispiel zur gdlib : http://forum.de.selfhtml.org/archiv/2003/3/t42647/

Zur Vorauswahl, dass nur 1 Bild angehängt/weitergegeben soll, solltest Du die Versanddaten (Text und Bilderlinks) als reine Textdaten an php schicken (also noch kein HTML), dann ist das Weglassen sicherlich einfacher, als die weiteren Bildertags aus dem HTML-Text zu extrahieren.

Sprich, den eigentlichen Mailinhalt erst in php erstellen, davor das erste Bild nehmen und per gdlib verkleinern.

mfg chmee
 
Hallo chmee,

das ist mir klar. Das Bild zu verkleinern ist kein Problem. Mein Problem ist das ich das Bild erst mal im String finden muß um es dann zu verkleinern. Ich denke das ich eventuell mit preg_match da was machen muß. Leider habe ich da keine Ahnung von.

Gruß Jürgen
 
Der Regextester ist eine Spielwiese für Regexcodes (unter php).

Du löscht in jenem verlinkten Beispiel die url oben und packst anstatt dessen Deinen obigen Text in das Feld darunter. Wenn Du dann Regex testen drückst solltest Du sehen, ob die Regex funktioniert. Das Schöne ist doch, dass Dir die php-source auch gleich gezeigt wird. Versuchs mal, das Ding kann ne Menge zu Regex beibringen. Die Frage, wie man preq_match benutzt, stellt sich dann nicht mehr :D

mfg chmee
 
Hallo chmee,

das habe ich jetzt ermittelt. Ich werde das heute noch testen und dann das Ergebnis Posten.

Noch eine kurze Frage: Was bedeutet das EOF;?
PHP:
EOF; 

// das Suchmuster mit Delimiter und Modifer (falls vorhanden)  
$pattern = '/<img[^>]+>/is';

PHP:
<?php 
error_reporting(E_ALL); 

// Text bzw. String der durchsucht werden soll  
$string = <<<EOF 
<h3><u><b>Überschrift</b></u></h3> 
<p><font color=#0000ff><b>Beschreibung:</b></font> 
<div class='weblink' style='color:#007700'><b>Bla Bla Bla Bla Bla Bla Bla Bla </b></div> 
<br>Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla 
Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla ´ 
Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla  
Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla  
<br><br> 
Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla  
<br> 
<div style=text-align:center;> 
<img src=http://www.seite.de/gallery/img/bilder/Bild_1.jpg width=395 height=296 border=0> 
<br><br> 
<img src=http://www.seite.de/gallery/img/bilder/Bild_2.jpg width=395 height=296 border=0> 
</div> 
EOF; 

// das Suchmuster mit Delimiter und Modifer (falls vorhanden)  
$pattern = '/<img[^>]+>/is'; 

// RegEx mit preg_match() auswerten  
preg_match($pattern, $string, $array); 

// formatierte Ausgabe  
echo '<pre>', print_r($array, true), '</pre>'; 

?>
Ergebnis:
PHP:
Array
(
[0] => <img src=http://www.seite.de/gallery/img/bilder/Bild_1.jpg width=395 height=296 border=0>
)
 
In diesem Fall ist es nur eine beliebe Zeichenfolge zur Defnition eines Heredoc-Strings.

Bei :google: findest du weitere Informationen unter dem Stichwort "Heredoc"
 
Hallo Leute,

ich habe jetzt ein anderes Problem!

Ich übergebe ja den String über die URL per GET ans Formular um ihn dort per Mail zu verschicken. Leider kommt er aber nicht ganz rüber! Bei der Ausgabe mit echo hört alles bei der Raute, dem Kaufmänischem & auf. Das Hochkomma wird auch maskiert. \'0000ff\'. Was kann das sein und wie kann ich das beheben?

Kann ich eine Variable z.B. $_beschreibung als String (eben nur das Wort $_beschreibung) per GET ins Formular übergeben und dort dann wieder als php Variable ausgeben! So was ähnliches wie eval

mfg
Jürgen
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück