如何在变量中使用函数?

时间:2017-01-24 06:17:19

标签: php function fwrite

我在这里要做的是利用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>
...

我已经尝试了过去几个小时我能想到的一切。我在这里做错了什么?

1 个答案:

答案 0 :(得分:-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);