Различные вопросы по PHP и MySQL

254K
.

ДоХтор, Благодарю

.

Можно ли при помощи хетакес скрыть / подменить прямую ссылку на скачивание файла? Сама ссылка берется из БД.

.
Hey guys! Finally I'm gonna change status!?

Dezaktivator, Если включен модуль апаше XSendFile, проще апачем отдавать

// //habrahabr.ru/post/151795/
function file_force_download($file) {
  if (file_exists($file)) {
    header('X-SendFile: ' . realpath($file));
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    exit;
  }
}
.

kantry, А в граберах как реализовано? Там же тоже ссылка на источник подменяется.

.
Hey guys! Finally I'm gonna change status!?

Dezaktivator, Да по всякому, обычно с помощью регулярок подменяют адреса.

.

Подскажите функцию, чтобы проверять слова на смешанные алфавиты (кириллица, латиница)

.
Добавлено: 02.12.2017 / 20:25
# intelligent (02.12.2017 / 20:13)
Подскажите функцию, чтобы проверять слова на смешанные алфавиты (кириллица, латиница)
Это регуляркой делается.

Добавлено: 02.12.2017 / 20:52
// Проверить на латиницу
var_dump(get_lang('Текст кириллицей')); // false

// Проверить на кириллицу (вторая буква в Lаtin - русская)
var_dump(get_lang('Lаtin text', 'ru')); // true


function get_lang($str, $lang = 'en') {
    $langs = ['en' => '~[a-z]~i', 'ru' => '~[а-я]~iu'];
    return (bool)preg_match($langs[$lang], $str);
}
.

ДоХтор, Благодарствую)

.
Enter нажат, к чему теперь рыданья…

Как можно получать значения массива рандомно без повторений?
Функция array_rand(); выводит значения массива случайным образом, но они могут повторяться.

.
ДоХтор
Добавлено: 06.12.2017 / 00:38
# Sitego (05.12.2017 / 23:48)
Как можно получать значения массива рандомно без повторений?
Функция array_rand(); выводит значения массива случайным образом, но они могут повторяться.
Вот пример с использованием сессий:
code (+/-)
session_id() ?: session_start();

// Массив случайных значений
$array = [
    'A',
    'B',
    'C',
    'D',
    'E'
];

isset($_SESSION['arr']) ?: $_SESSION['arr'] = [];
$temp = &$_SESSION['arr'];
!empty($temp) ?: $temp = $array;
 
shuffle($temp);
$result = $temp[0];
unset($temp[0]);

echo $result;
Добавлено: 06.12.2017 / 00:42
Sitego, суть в том, что при выборе из массива текущего случайно выпавшего элемента, этот элемент удаляется из массива, и таким образом исключается его повторное получение до момента, пока не закончатся все элементы в массиве - после этого массив восстанавливается и цикл начинается заново.
Всего: 7969