$test = 'a/b/c'; // прямые слеши.
echo basename($test); // результат 'c'
echo PHP_EOL;
$test2 = 'a\b\c';
$test2 = str_replace('\\', '/', $test2); // обратные слеши заменяем на прямые.
echo basename($test2); // результат 'c'
is_file()
вернет false
, если указанный путь указывает на каталог, file_exists()
вернет true
, если данный путь указывает на допустимый файл или каталог. Смысл в том, что не одно лучше другого, а функции отличаются по смыслу и их нужно использовать своевременно.is_file()
, в противном случае используйте file_exists()
. $str = 'v\a';
var_dump(preg_match("/^(v\\\\a)$/", $str, $matches)); // true
$str2 = 'v\\\a';
var_dump(preg_match("/^(v\\\\a)$/", $str2, $matches)); // false
$session_user_id = // получаем id пользователя из сессии любым удобным способом
$user_id = // присваиваем значение user_id из публикации
if($session_user_id === $user_id) {
// отображаем публикацию
} else {
// нет прав на просмотр
}
$array = [
[
'name' => 'Николай Васильевич',
'email' => 'gogol@gogol.ru',
'birth_date' => '1809',
//... необходимые поля для автора
'books' => [
[
'name' => 'Мертвые души',
'date' => '1841',
],
[
'name' => 'Вий',
'date' => '1834',
],
//... перечисление всех книг автора
],
],
[
'name' => 'Пушкин',
'email' => 'alexandr@sergeevich.ru',
'birth_date' => '1799',
'books' => [
[
'name' => 'Евгений Онегин',
'date' => '1823',
],
//...
],
],
//... и т.д.
];
// информация об авторе
foreach ($array as $author) {
echo $author['name'].' - '.$author['email'].' - '.$author['birth_date'].'<br>';
}
echo '<hr>';
// о книгах
foreach ($array as $author) {
foreach ($author['books'] as $book) {
echo $book['name'].' - '.$author['name'].' - '.$book['date'].'<br>';
}
}