php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.01.2005, 16:20  
Gast
 
Beiträge: n/a
Standard Funktion ausgeben

Hallo!
Ich habe ein Problem, denn ich möchte eine Funtkion dynamisch zusammenstellen udn ausgeben lassen. ich weiß nicht genau wie ich das formulieren soll, aber hier seht ihr ein Beispiel:

PHP-Code:
echo 'function '.$_POST['Funktion'].'('.$row[$_POST['Funktion_Wert']].')'
Wie ihr seht, stellen dort mehrere Variablen und Arrays die Funktion zusammen. Die Funktion selbst gibt es schon, ich möchte sie nur ausgeben.
So wie es jetzt ist, klappt es natürlich ncht, da 'funktion' als String angegeben ist. Kann mir einer von euch helfen?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.01.2005, 16:26  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

So ganz kapiere ich noch nicht, wo dein Problem liegt.

Du hast irgendwo einen Funktionsnamen und irgendwo eine Definition, welche Parameter an die Funktion übergeben werden. Das kommt aus einem Formular, so wie ich es gerade sehe. Wo wird bei dir nun "funktion" als String ausgegeben?
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 10.01.2005, 16:41  
Gast
 
Beiträge: n/a
Standard

Genau, die Parameter kommen aus einem Formular. Als String werden alle Texte ausgegeben die entweder in '' oder in "" stehen. Du kennst ja String, Bolean, Integer usw.

Also das hier sind Strings:
echo 'function '.$_POST['Funktion'].'('.$row[$_POST['Funktion_Wert']].')';

Nun kann ich aber nicht die ' ' weglassen, weil PHP dann Fehler schreit. Aber ich weiß nicht, wie ich das nun so zusammenstellen kann, dass die Strings wegfallen oder aber dass ich meine Zusammenstellung in eine Variable packen kann und dass es dann einen Befehl gibt, der sagt: "Führ das aus!"

IF abfragen will ich hier nicht verwenden, sondern ich möchte bei dem System bleiben, falls irgendwer mir IFs hier vorschlagen will ^^
 
Alt 10.01.2005, 16:53  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
if(is_callable($_POST['Funktion'])) {
   echo 
call_user_function($_POST['Funktion'],$_POST['Funktion_Wert']);
} else {
   echo 
'Funktion konnte nicht aufgerufen werden.';

das funktioniert so, allerdings solltest du dir überlegen, dass sowas ziemlich unsicher ist, was du da machst. aber gut - ist ja dein skript
axo ist offline  
Alt 10.01.2005, 16:54  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Wenn ich dich nun korrekt verstanden habe, dann folgendes:

Für solche Zwecke wird die Funktion vollständig in einer Variable zusammengebastelt und anschliessend kannst du den Code per "eval()" ausführen. Beispiel:

PHP-Code:
<?php
$name 
'meine_funktion';

$funktion 'function '.$name.'($str)';
$funktion .= '{';
$funktion .= '    echo $str;';
$funktion .= '}';

eval (
$funktion);

meine_funktion("Hallo, Welt!");
?>
mepeisen ist offline  
Alt 10.01.2005, 17:04  
Gast
 
Beiträge: n/a
Standard

meinst du nicht so?

PHP-Code:
<?php
$name 
'meine_funktion';

$funktion 'function '.$name.'($str)';
$funktion .= '{';
$funktion .= '    echo $str;';
$funktion .= '}';

eval (
$funktion);

$name("Hallo, Welt!");
?>
 
Alt 10.01.2005, 17:06  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Ja, meine ich auch bzw. ist ja eigentlich das gleiche.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 10.01.2005, 17:11  
Gast
 
Beiträge: n/a
Standard

So ich habe nun eine Lösung:
PHP-Code:
$call_this 'echo '.$_POST["Funktion"].'('.$row[$_POST["Funktion_Wert"]].');';
eval(
$call_this); 
 
Alt 10.01.2005, 17:18  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Wobei du trotzdem den Hinweis von axo überdenken solltest. Zumindest solltest du vorher gucken, was der böse User in $_POST['Funktion'] so drin stehen hat, denn sonst öffnest du Tür und Tor zu allem...
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
Externe Variable über eine Funktion ausgeben errox PHP Tipps 2008 3 14.04.2008 11:26
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
Download starten (header funktion), vorher Text ausgeben? Harakiri81 PHP-Fortgeschrittene 19 16.05.2006 21:15
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
Problem mit einer rekursiven Funktion in einer Klasse ajo_silent PHP-Fortgeschrittene 6 13.06.2005 16:40
[Erledigt] Array-Übergabe in Funktion PHP Tipps 2005 1 08.05.2005 21:05
Tabelle in einer Funktion ausgeben PHP Tipps 2005 3 25.04.2005 23:08
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
In einem Bild ein php funktion ausgeben! PHP Tipps 2004 1 24.10.2004 16:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php funktion ausgeben, php function ausgeben, funktion ausgeben php, php funktionen ausgeben, php funktionsnamen ausgeben, php funktionen auflisten, php aktuelle funktion ausgeben, function ausgeben php, function ausgeben, php name der funktion ausgeben, funktionen ausgeben php, php alle funktionen ausgeben, php funktion ergebnis ausgeben, funktion php ausgeben, php funktion werte ausgeben, php eigene funktion ausgeben, php name einer funktion ausgeben, funktionsname ausgeben php, ergebnis einer funktion ausgeben php, name der funktion ausgeben php

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.