Genau für sowas sind Functions da, da sie auch weniger Ressourcen brauchen, da sie nur einmal initialisiert werden und dann im Speicher liegen.
Für die Frage, wie das geht ... wie sehen denn Deine Ansätze aus, wo hast Du da genau Deine Probleme?
Nabend zusammen,
ich stehe vor der Frage:
Soll ich eine Funktion verwenden oder einfach immer den Code vorher ausführen.
Ich erstelle für meine Website Suchmaschinenfreundliche Links. Dazu frage ich die Datenbank ab. Erstelle den Rohlink und convertiere ihn mit einem Script, welches mir dem Link nach meinen Wünschen umstellt. Alles klein etc.
Also zur Zeit habe ich ca. 1000 Eiträge in meiner Datenbank. Welche Variante ist denn die Zeitfreundlichste?
Wenn ich die Funktion nehmen sollte, kann mir dann bitte einer sagen wie das funktioniert?
Hier mal der Code zum Umwandeln:
GrüßePHP-Code:$html_url = $row_konzert['artist'].'-'.$row_konzert['venuename'].'-'.$row_konzert['venueort'].'_'.$row_konzert['id'];
$arSearch = Array('ä','ö','ü','ß','Ä','Ö','Ü',' ');
$arReplace = Array('ae','oe','ue','ss','Ae','Oe','Ue','-');
$html_url = str_replace($arSearch, $arReplace, $html_url);
$html_url = ereg_replace("[^a-zA-Z0-9_-]", "", $html_url);
$html_url = strtolower($html_url);
der Denis
Genau für sowas sind Functions da, da sie auch weniger Ressourcen brauchen, da sie nur einmal initialisiert werden und dann im Speicher liegen.
Für die Frage, wie das geht ... wie sehen denn Deine Ansätze aus, wo hast Du da genau Deine Probleme?
Hallo Mark,
mhh, ich weiss schon das eine Funktion mit FUNKTION NeueURL ($html) {} erstellt wird. Hoffe ich mal.
Aufgerufen wird es dann glaube ich mit $html -> neueURL.
Das würde bedeuten, ich erstelle meine $html wie bisher, jage diese durch die Fumktion und bekommen eine neue $html zurück?
Wo platziere ich die Funktion?
Grüße
Denis
Ich glaube du hast da grade ein Objekt, Methode mit einer Funktion ohne Klasse verwechselt.
Eine Funktion ohne Returnwert wird so aufgerufen:
funktion($var); --> $var muss nicht sein wenn nichts übergeben wird.
Mit Rückgabewert:
$x=funktion($var); --> $var muss nicht sein wenn nichts übergeben wird.
$objekt->funktion($var); ist Objektorjentiert und erfordert eine Klasse.
Gruß
Tom
"Ich darf das!"
Der Mensch hat drei Wege, klug zu handeln. Erstens durch Nachdenken: Das ist der edelste. Zweitens durch Nachahmen: Das ist der leichteste. Drittens durch Erfahrung: Das ist der bitterste. (Konfuzius)
Also das soll meine Funktion sein:
Function new_url(){
$arSearch = Array('ä','ö','ü','ß','Ä','Ö','Ü',' ');
$arReplace = Array('ae','oe','ue','ss','Ae','Oe','Ue','-');
$html_url = str_replace($arSearch, $arReplace, $html_url);
$html_url = ereg_replace("[^a-zA-Z0-9_-]", "", $html_url);
$html_url = strtolower($html_url);
$arSearch = Array('--');
$arReplace = Array('-');
$html_url = str_replace($arSearch, $arReplace, $html_url);
$html_url = $html_url.'.html';
}
<a href="new_url($row_konzert['venuename'].'-'.$row_konzert['venueort'].'_'.$row_konzert['id'])">LINK</a>
oder?
Geändert von DenisCGN (15.01.2007 um 13:08 Uhr)
Du musst noch einen Uebergabeparameter fuer deine Funktion angeben.
Ein return waere auch nicht schlecht, wenn du kein echo nutzen willst.
PHP-Code:function new_url($var){
$arSearch = Array('ä','ö','ü','ß','Ä','Ö','Ü',' ');
$arReplace = Array('ae','oe','ue','ss','Ae','Oe','Ue','-');
$html_url = str_replace($arSearch, $arReplace, $var);
$html_url = ereg_replace("[^a-zA-Z0-9_-]", "", $html_url);
$html_url = strtolower($html_url);
$arSearch = Array('--');
$arReplace = Array('-');
$html_url = str_replace($arSearch, $arReplace, $html_url);
return $html_url.'.html';
}
PHP-Code:<a href="<?=new_url($row_konzert['venuename'].'-'.$row_konzert['venueort'].'_'.$row_konzert['id'])?>">LINK</a>
Das funktioniert nicht, :-(
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">PHP-Code:<?php
function new_url($var){
$arSearch = Array('ä','ö','ü','ß','Ä','Ö','Ü',' ');
$arReplace = Array('ae','oe','ue','ss','Ae','Oe','Ue','-');
$html_url = str_replace($arSearch, $arReplace, $var);
$html_url = ereg_replace("[^a-zA-Z0-9_-]", "", $html_url);
$html_url = strtolower($html_url);
$arSearch = Array('--');
$arReplace = Array('-');
$html_url = str_replace($arSearch, $arReplace, $html_url);
return $html_url.'.html';
}
?>
Es wird keine neue URL ausgegebenPHP-Code:<body>
<?php do { ?>
<a href="<?php new_url($row_test['titel'].'-'.$row_test['label'].'_'.$row_test['id']) ?>">LINK</a><br><br>
<?php } while ($row_test = mysql_fetch_assoc($test)); ?>
</body>
</html>
<?php
mysql_free_result($test);
?>
Also erst mal musst du
<a href="<?=new_url(
oder
<a href="<? echo new_url(
machen. Du nutzt ja einen Rueckgabewert. Ansonsten musst du in der Funktion echo machen.
In deinem Fall wuerde ich aber keine Funktion nutzen.
Auch wenn webcreate schreibt, dass sie weniger Resourcen brauchen (im Vergleich zu?), sollte es ohne eine eigene Funktion schneller gehen.
PHP-Code:<?php
$arSearch = Array('ä','ö','ü','ß','Ä','Ö','Ü',' ');
$arReplace = Array('ae','oe','ue','ss','Ae','Oe','Ue','-');
$arSearch2 = Array('--');
$arReplace2 = Array('-');
while ($row_test = mysql_fetch_assoc($test)) {
$html_url=$row_test['titel'].'-'.$row_test['label'].'_'.$row_test['id'];
$html_url = str_replace($arSearch, $arReplace, $html_url);
$html_url = ereg_replace("[^a-zA-Z0-9_-]", "", $html_url);
$html_url = strtolower($html_url);
$html_url = str_replace($arSearch2, $arReplace2, $html_url); ?>
<a href="<?=$html_url?>">LINK</a><br><br>
<?php } ?>
Geändert von Guin (15.01.2007 um 22:23 Uhr)
Ich werde das mit der Funktion nutzen, mit dem ECHO klappt es prima. und ich muss die Funktion nicht x-mal schreiben. Es kommen halt in einer Seite bis zu 3 Abfragen dieser Art vor.
Ich danke Euch
Denis
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)