2017-01-24 8 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; 
} 

Я нашел эту функцию ранее здесь, и она работала отлично для создания карты сайта для всех этих страниц. URL-адреса были такими же, как я хотел. Однако, когда я называю одну и ту же функцию, чтобы сделать это для каждого заголовка, я попал в ловушку. Я предполагаю, что у меня есть код неправильно где-то так вот кусок кода создания файла:

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

Этот ответ не для вас. .. Я просто ответил, что имя файла не сформировано –

 Смежные вопросы

  • Нет связанных вопросов^_^