Какую функцию массива PHP следует использовать для сопоставления строки с первой частью строки с разделителями и возврата второй части строки с разделителями - PullRequest
0 голосов
/ 17 января 2012

Какую функцию массива php следует использовать для сопоставления строки с первой частью строки с разделителями и возврата второй части строки с разделителями?Причина, по которой я использую массив, заключается в том, что в файле много разделенных строк текста.Пример:

contact-us.php = Contact Us- Test Bed

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

function getPageName()
{
    return substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1); // If one echo's this and the url is /TestBed/contact-us.php Output will be: contact-us.php
}

function pageTitleIdentifier ()
{
    $filename = 'http://localhost/TestBed/includes/apptop/title.txt';
    $mode = 'rb';
    $file_handle = fopen ($filename, $mode);

    while (!feof($file_handle) ) {
        $page_title_pair = fgets($file_handle); // This will start reading where the above while loop stopped line by line.
        $parts = explode('=', $page_title_pair);
        @ $pageTitle = $parts[0] . $parts[1]; // Part zero is the filename ex contact-us.php Part one is the Title ex Contact Us- Test Bed for that page.
    }

    fclose($file_handle);
}

Итак, как правильно это сделать?Большое спасибо!

1 Ответ

0 голосов
/ 17 января 2012

Прежде всего, вы можете рассмотреть возможность реализации решения для кэширования.Для анализа файла для КАЖДОГО запроса на сервере с высоким трафиком обязательно добавится ненужная загрузка.

Попробуйте:

function pageTitleIdentifier ()
{
    $filename = 'http://localhost/TestBed/includes/apptop/title.txt';
    $mode = 'rb';
    $file_handle = fopen ($filename, $mode);

    while (!feof($file_handle)) {

        $page_title_pair = fgets($file_handle); 

        list($script, $title) = explode('=', $page_title_pair);

        // Uncomment below lines for debugging, they must line up exactly
        //   for the condition to be met, breaking the loop
        // var_dump($script);
        // var_dump(getPageName();

        // Because we reading from a file, might be some whitespace issues
        //  trim and strtolower ensures a true apples to apples comparison
        if (trim(strtolower($script)) === trim(strtolower(getPageName()))) {
            return $title;
        }            
    }

    fclose($file_handle);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...