Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem bei Text durch Variable zu tauschen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem bei Text durch Variable zu tauschen


 
H-T
04-06-2005, 02:44 
 
Hi,

Ich habe folgendes Formular:

<form action="'.http_query().'" method="post" class="entry">
<fieldset>
<legend>Eintrag hinzufügen</legend>
<label class="first" for="name">Name:
<input type="text" name="Name" id="name" maxlength="60" {Name} /></label>
<label for="email">E-Mail:
<input type="text" name="Email" id="email" maxlength="90" {Email} /></label>
<label for="homepage">Homepage:
<input type="text" name="Homepage" id="homepage" maxlength="90" {Homepage} /></label>
<label for="herkunft">Herkunft:
<input type="text" name="Herkunft" id="herkunft" maxlength="60" {Herkunft} /></label>
<label for="txt">Kommentar:<br />
<textarea name="GbTxt" id="txt" rows="12" cols="53">{GbTxt}</textarea></label>
<!-- !'.showBB('').' -->
<input type="submit" class="submitme" name="submit" value="Eintragen" />
<input type="submit" class="submitme" name="preview" value="Vorschau" />
<input type="reset" class="submitme" name="submit" value="Zurücksetzen" />
</fieldset>
</form>


Jetzt habe ich hier Platzhalter eingebaut ( {String} ) . Die will ich jetzt mit einem Regex austauschen. Dazu habe ich folgende Funktion:

// $post = $_POST Array !!!
// $str = Formular !!!
function form_replace($str,$post)
{
$str = preg_replace('#{(.*)}#Uis', $post[$1], $str);
return $str;
}


Die Funktion soll die Platzhalter durch ein value ersetzen wo dann der $_POST Inhalt drin steht. Nur klappt das nicht.

Der will einfach die Backreference nicht als Key vom Array benutzen. Mein Problem/ meine Frage ist denn auch, wie ich die Backreference als Key meines Arrays benutzen kann?

Ich hoffe echt dass mir einer helfen kann!

Ein dickes Dankeschön schon mal im voraus!

Gruß

H-T

 
Floriam
04-06-2005, 12:31 
 
Formatiere deinen Code bitte so, dass man nicht horizontal scrollen muss ;)


Desweiteren ist preg_replace_callback wohl die Funktion die du suchst.. :)

 
H-T
04-06-2005, 13:13 
 
Hi,

Also ich hab jetzt folgende Funktion:


$str = preg_replace_callback('#{(.*)}#Uis', create_function('$str','return $str[1];'),$str);
// $post = $_POST Array !!!
// $str = Formular !!!
function form_replace($str,$post)
{
$str = preg_replace_callback('#{(.*)}#Uis',
create_function('$str','return $str[1];'),$str);
return $str;
}



Aber ich kann dem Array $post immer noch nicht den Str aus der Callback als Key übergeben. Wie löse ich das den nun?

Gruß

 
Floriam
04-06-2005, 17:32 
 
Pack den String in $GLOBALS und dann kannst du einwandfrei darauf zugreifen. Dann nochmal ins Manual schauen, da ist (fast) genau so ein Beispiel ;)


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