2017-01-24 5 views
-2

Was ich versuche, hier zu tun ist die Verwendung von PHP in der Lage zu machen, um Dateien zu erstellen und zu schreiben, weil ich wie 350 Seiten hat alle mit der gleichen Codezeile zu machen, die von einer Reihe unterscheidet. Tun Sie das lieber durch Code als durch manuelles Erstellen von 350 Seiten!Wie benutzt man eine Funktion in einer Variablen?

Jede Datei wird (.php) und nach dem Titel des Inhalts genannt es wird die bereits definiert worden ist. da dies die URL wird jedoch um die Seite zu erreichen, muß ich um den Titel zu formatieren und die formatierte Version als Dateinamen verwenden.

Das ist, was ich habe, mit zu beginnen:

function seoUrl($string) { 
    //Make lowercase 
    $string = strtolower($string); 
    //Clean up multiple dashes or whitespaces 
    $string = preg_replace("/[\s-]+/", " ", $string); 
    //Convert whitespaces and underscore to dash 
    $string = preg_replace("/[\s_]/", "-", $string); 
    return $string; 
} 

ich hier früher diese Funktion gefunden und es funktionierte perfekt für die Sitemap für alle diese Seiten zu machen. Die URLs waren genau so, wie ich es wollte. Wenn ich jedoch für jeden Titel dieselbe Funktion anrufe, habe ich einen Haken gefunden. Ich gehe davon aus ich den Code haben falsch irgendwo so ist hier ein Stück der Dateierstellung Code:

//Content title to be formatted for the filename 
$title1="Capitalized And Spaced Title"; 

//Formatting 
$urlfile1="seoUrl ($title1)"; 

//Text to be written 
$txt1="<?include 'tpl/pages/1.txt'?>"; 

//And the create/write file code 
    $createfile1=fopen("$urlfile1.php", "w"); 
     fwrite($createfile1, $txt1); 
     fclose($createfile1); 

Der Code fügt die $ txt Werte ganz gut, was eigentlich ist, wo ich ein Problem erwartet haben. Aber meine Dateien, die erstellt werden, enthalten den Funktionsnamen und Klammern, und der Titel ist nicht formatiert.

ich dieses Problem nicht auf der Sitemap Seite habe:

$url1="$domainurl/$pathurl/$title1.php"; 
$url2="$domainurl/$pathurl/$title2.php"; 
... 

seoUrl($url1); 
seoUrl($url2); 
... 

<?echo $url1?><br> 
<?echo $url2?><br> 
... 

ich alles versucht habe ich jetzt für die letzten paar Stunden denken. Was mache ich hier falsch?

+0

Beachten Sie, wie Sie die 'seoUrl' Funktion" aufrufen "und wie Sie andere Funktionen aufrufen, z. 'strtolower'. –

Antwort

-1

Versuchen Sie dies, ich hoffe, das könnte Ihnen helfen. Es wird die Datei im richtigen Format erstellen.

function seoUrl($string) { 
//Make lowercase 
$string = strtolower($string); 
//Clean up multiple dashes or whitespaces 
$string = preg_replace("/[\s-]+/", " ", $string); 
//Convert whitespaces and underscore to dash 
$string = preg_replace("/[\s_]/", "-", $string); 
return $string; 
} 

$title1 = "Capitalized And Spaced Title"; 
//Formatting 
$urlfile1 = seoUrl($title1); 
//Text to be written 
$txt1 = "<?include 'tpl/pages/1.txt'?>"; 
//And the create/write file code 
$fileName = "" . $urlfile1 . ".php"; 
$createfile1 = fopen($fileName, "w"); 
fwrite($createfile1, $txt1); 
fclose($createfile1); 
+0

Diese Antwort erklärt nichts. –

+0

Diese Antwort ist nicht für Sie .. Ich antwortete gerade über Dateinamen ist nicht formatiert –

Verwandte Themen