Я делаю себе веб-страницу, которая просто перенаправляет на один из списка других сайтов при загрузке страницы. Чтобы упростить редактирование списка сайтов, я переместил список в отдельный текстовый документ. После включения файла в код PHP, браузер возвращается к анализу HTML и обратно, когда включено. В результате мой код печатается на экране, а не выполняется. Я не могу реализовать заголовки и теги PHP в текстовом файле, так как это приведет к нарушению цели сохранения его внешнего. В настоящее время у меня есть другой скрипт, который позволяет мне добавлять ссылки на файл, если я хочу их добавить.
index.php, файл, с которым я работаю
<?php $array_content = array(include 'sites.txt'); header("location: ".$array_content[rand(0,9)]); ?>
site.txt, файл, который я включаю
"http://www.nsa.gov/" ,"http://www.youtube.com/watch?v=oHg5SJYRHA0" ,"http://leekspin.com/"
Есть ли способ просто вставить текстовый файл в index.php, не распечатывая его на экране?
Тебе не следует!
Разберите его как текст (например, разделив содержимое пробелов и разделив его запятыми) или, менее предпочтительно, сделайте содержимое PHP-кодом, а затем включите его, используя include
.
Вы, вероятно, должны придерживаться разбора файла как текста – для этого вы можете использовать функцию file()
. file()
читает весь файл и возвращает его содержимое в виде массива строк (с завершением строки). Вы можете делать все, что вам нужно, с такими данными (например, отключите его от запятых и пробелов).
Если вы выберете первый (в том числе PHP-код в TXT-файле, что является плохой идеей, если вы хотите sites.txt
доступ к sites.txt
), вы должны попытаться не загрязнять глобальное пространство имен. Вы можете достичь этого, используя решение, упомянутое другими ответами:
в sites.txt
:
<?php return 'your string goes here';
в вашем скрипте:
<?php $my_string = include('sites.txt');
eval()
Просто включив его по информативным причинам. Если у вас есть PHP-код в вашем TXT-файле, вы можете использовать eval()
для разбора его как PHP-кода. Но помните – eval()
– это зло , избегайте его любой ценой.
Что вы хотите, это parse_ini_file()
fn:
http://php.net/manual/en/function.parse-ini-file.php
Вы можете легко управлять своим списком в отдельном файле и импортировать его как массив для использования без особых проблем.
Вы смешиваете код с данными. Txt-файл – только txt. Что вам нужно сделать, это сохранить его в формате открытого текста. Поскольку есть только одно поле, я бы рекомендовал плоский файл, состоящий из имен файлов, разделенных символами новой строки.
Sitenames.txt:
site1.com site2.org site3.net
PHP-код для извлечения файлов:
$siteList = file('/path/to/Sitenames.txt');
Затем вы можете выполнять любые операции из извлеченного списка.
Предложение:
Сохраните свой "sites.txt", как это,
<?php $array_content = array( "http://www.nsa.gov/", "http://www.youtube.com/watch?v=oHg5SJYRHA0", "http://leekspin.com/" ); ?>
и затем, "index.php"
<?php include('sites.txt'); header("location: ".$array_content[rand(0,9)]); ?>
в<?php include('sites.txt'); header("location: ".$array_content[rand(0,9)]); ?>