2017-01-24 124 views
-2

我想在這裏做的是利用PHP的能力來創建和寫入文件,因爲我有350頁使用相同的代碼行相同的行號相差一個。更重要的是通過代碼執行此操作,而不是手動創建350頁!如何在變量中使用函數?

每個文件都是(.php),並以它已經定義的內容的標題命名。但是,因爲這將是到達該頁面的URL,所以我需要格式化標題並使用格式化版本作爲文件名。

這是我的本錢入手:

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; 
} 

我剛纔就在這裏發現了這個功能,它完美地工作了製作網站地圖所有這些頁面。這些網址就像我想要的一樣。但是,當我爲每個標題調用相同的函數時,我遇到了一個障礙。我認爲我有錯碼的地方所以這裏有一塊文件創建代碼:

//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); 

代碼插入$ TXT值就好了,這其實是我期待有一個問題。但我創建的文件包括函數名稱和括號,加上標題沒有格式化。

我沒有在網站地圖頁面上這個問題:

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

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

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

我用盡了一切我現在就可以過去幾個小時想。我在這裏做錯了什麼?

+0

請注意如何「調用」'seoUrl'函數以及如何調用其他函數,例如。 'strtolower'。 –

回答

-1

試試這個,我希望這可能會幫助你。它會以適當的格式創建文件。

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

這個答案沒有解釋任何東西。 –

+0

這個答案不適合你哥們。 我剛纔回答關於文件名不是合成的 –