Этот код, вероятно, не самый лучший для звонка по клику, но он работает.
У меня есть 3 числа, которые я хочу рандомизировать в сообщении. Когда дело доходит до отображения только один раз с уникальным фрагментом кода, это нормально. Но когда дело доходит до отображения одного и того же случайного числа в два раза ниже в сообщении, это сложно. Отображаемые цифры разные.
Как я могу отображать одно и то же случайное число (при обновлении страницы) несколько раз, контролируя это.
$numbers = array("800-433-7300", "800-633-3711", "800-756-8613");
switch ($numbers[array_rand($numbers)]) {
case "800-433-7300":
echo '<a href = "tel:8004337300">800-433-7300</a>';
break;
case "800-633-3711":
echo '<a href = "tel:8006333711">800-633-3711</a>';
break;
default:
echo '<a href = "tel:8007568613">800-756-8613</a>';
break;
}
Я ожидаю, что 800-433-7300 будет отображаться в другой части страницы. Следующая страница обновления, 800-633-3711, также будет отображаться несколько раз и так далее...
Есть идеи ? Не могли бы вы предложить мне конкретную функцию, структуру или ресурс страницы, чтобы решить эту проблему самостоятельно?
Спасибо
Вставьте значение в переменную, а затем используйте эту переменную столько раз, сколько захотите после этой точки.
$save_it = '<a href = "tel:8004337300">800-433-7300</a>';Я думаю, он имеет в виду писать разные числа при перезагрузке нескольких страниц. Я бы сохранил его в файле cookie, а затем при следующей перезагрузке, в зависимости от значения файла cookie, показывал другой
Вы можете использовать средство форматирования для форматирования во внешнем интерфейсе (javascript) и просто сохранить число как строку unformatet. Это улучшит читаемость и уменьшит избыточность — вы можете избавиться от этой логики и оператора switch на бэкэнде.
Спасибо за ваши ответы! Хранение var var было хорошим решением






Используйте var для хранения значения:
$numbers = array("800-433-7300", "800-633-3711", "800-756-8613");
$rand_num = $numbers[array_rand($numbers)];
Затем используйте его там, где вам это нужно на вашей странице:
echo '<a href = "tel:'.str_replace('-', '', $rand_num).'">$rand_num</a>';
Теперь, если вам всегда нужна одна и та же строка для эха, сохраните строку:
$numbers = array("800-433-7300", "800-633-3711", "800-756-8613");
switch ($numbers[array_rand($numbers)]) {
case "800-433-7300":
$rand_string = '<a href = "tel:8004337300">800-433-7300</a>';
break;
case "800-633-3711":
$rand_string = '<a href = "tel:8006333711">800-633-3711</a>';
break;
default:
$rand_string = '<a href = "tel:8007568613">800-756-8613</a>';
break;
}
И теперь вы можете повторить строку, где хотите:
echo $rand_string;
Если я правильно понимаю, вы хотите, чтобы при каждом обновлении страницы появлялся другой номер. Если это так, я бы перебирал массив телефонных номеров с помощью файлов cookie.
И вы можете использовать один и тот же номер для каждого обновления страницы, потому что он хранится в переменной $phones[$phoneIndex]
Если вам нужно больше чисел, просто проверните их в массиве.
$phones = ['800-433-7300','800-633-3711','800-756-8613'];
$phoneIndex= isset($_COOKIE['phoneIndex']) ? $_COOKIE('phoneIndex') : 0;
echo "<a href=\"$phones[$phoneIndex]\">$phones[$phoneIndex] </a>";
setcookie('phoneIndex', ($phoneIndex+1)%3);
Спасибо @amarnasan, это тоже отличный вариант!
Не уверен, что понял, но разве вы не можете использовать var, чтобы получить этот случайный номер, а затем использовать var на своей странице?