Как вывести содержимое файла

12
N
На сайте с 26.08.2009
Offline
103
302

Всем доброго времени суток.

Знания в php практически отсутствую, поэтому надеюсь на вашу помощь.

Есть простенький лендинг, линк в партнерке на него выглядит так:

https://сайт.com/папка/page.php?&subid1={zoneid}&click_id=${SUBID}

На самом лендинге к ссылке параметры подставляются так:

<?php
$url='https://партнерка.com';

if (isset($_GET['subid1']) && $_GET['subid1']!='') {$url.='&s3='.$_GET['subid1'];}
if (isset($_GET['click_id']) && $_GET['click_id']!='') {$url.='&click_id='.$_GET['click_id'];}
?>

и линк уже с параметрами в теле лендинга выводится так:

<a href="<?php echo $url; ?>">

Вопрос-как реализовать, чтобы вместо статичного линка 'https://партнерка.com' тянулась строка с линками из файла (желательно рандомная) и все параметры корректно подставлялись.

Надеюсь понятно объяснил 🤔

lutskboy
На сайте с 22.11.2013
Offline
177
#1
$file = file(__DIR.__'/filename.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$url = $file[mt_rand(0, count($file))];

вместо 

$url='https://партнерка.com';

тут ссылки filename.txt

файл должен быть в той директории что и скрипт
N
На сайте с 26.08.2009
Offline
103
#2
lutskboy #:
$file = file(__DIR.__'/filename.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$url = $file[mt_rand(0, count($file))];

Спасибо за ответ, но при таком раскладе:

<?php

$file = file(__DIR.__'/links.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$url = $file[mt_rand(0, count($file))];

if (isset($_GET['subid1']) && $_GET['subid1']!='') {$url.='&s3='.$_GET['subid1'];}
if (isset($_GET['click_id']) && $_GET['click_id']!='') {$url.='&click_id='.$_GET['click_id'];}
?>

Страница перестает грузится

Страница недоступна

Сайт *** пока не может обработать этот запрос.

HTTP ERROR 500
W1
На сайте с 22.01.2021
Offline
304
#3
Nickone #:
при таком раскладе

Там синтаксическая ошибка в коде:
__DIR.__'/filename.txt'
Должно быть так:
__DIR__ . '/filename.txt'

Мой форум - https://webinfo.guru –Там я всегда на связи
N
На сайте с 26.08.2009
Offline
103
#4
webinfo #:

Там синтаксическая ошибка в коде:
__DIR.__'/filename.txt'
Должно быть так:
__DIR__ . '/filename.txt'

Да, действительно, так все почти заработало. Только когда обновляю страницу через раз ссылку скрипт не вставляет, а подставляет только параметры.

Т.е. 2 раза из трех

<a href="https://домен1.com?utm_source=da57dc&s3={zoneid}&click_id=${SUBID}">
<a href="https://домен2.com?utm_source=da57dc&s3={zoneid}&click_id=${SUBID}">

А на третий просто параметры

<a href="&s3={zoneid}&click_id=${SUBID}">
N
На сайте с 26.08.2009
Offline
103
#5

Всем спасибо, разобрался.

От  count($file) нужно отнимать единицу, т.к. строки нумеруются 0,1,2,3 и когда рандом попадает на 0 - ссылка не вставляется.

Рабочее решение выглядит так:

<?php

$file = file(__DIR.__'/links.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$url = $file[mt_rand(0, count($file)-1)];

if (isset($_GET['subid1']) && $_GET['subid1']!='') {$url.='&s3='.$_GET['subid1'];}
if (isset($_GET['click_id']) && $_GET['click_id']!='') {$url.='&click_id='.$_GET['click_id'];}
?>
W1
На сайте с 22.01.2021
Offline
304
#6
Nickone #:
когда рандом попадает на 0 - ссылка не вставляется

Только не на 0, а на несуществующее максимальное значение count(). Поэтому и надо отнимать 1.

N
На сайте с 26.08.2009
Offline
103
#7
webinfo #:

Только не на 0, а на несуществующее максимальное значение count(). Поэтому и надо отнимать 1.

Можно еще вопрос? Необходимо, чтобы файл /links.txt находился не в директории со скриптом, а например в корне сайта, или отдельной папке. Как правильно прописать путь к файлу?

W1
На сайте с 22.01.2021
Offline
304
#8
Nickone #:

Можно еще вопрос? Необходимо, чтобы файл /links.txt находился не в директории со скриптом, а например в корне сайта, или отдельной папке. Как правильно прописать путь к файлу?

По-разному можно. Например, так:
$_SERVER['DOCUMENT_ROOT'] . "/dir/links.txt"

N
На сайте с 26.08.2009
Offline
103
#9
webinfo #:

По-разному можно. Например, так:
$_SERVER['DOCUMENT_ROOT'] . "/dir/links.txt"

Спасибо, так и сделал. А в скрипте попандера такое реализуемо?

Например есть скрипт

<script type="text/javascript">
var popunderPeriod = 12;
var popunderUrl = 'ССЫЛКА';
</script>
<script src="https://akamaized.net/mr/popunder.js"></script>

Чтобы вместо "ССЫЛКА" так же тянулись линки из файла?

Извиняюсь за кучу глупых вопросов)

W1
На сайте с 22.01.2021
Offline
304
#10
Nickone #:
Чтобы вместо "ССЫЛКА" так же тянулись линки из файла?

Без разницы, просто в соответствующем php-файле надо написать конструкцию типа 

var popunderUrl = '<?=$url?>';
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий