PHP СПАСЫЛКІ для дырэктараў

жорсткія і сімвалічныя спасылкі ў php.  як ствараць іх і выкарыстоўваць?
Як працуюць спасылкі на файлы і дырэкторыі

Распаўсюджанай праблемай пры працы з файлавай сістэмай, у тым ліку і з дапамогай PHP, з'яўляецца дубляванне файлаў. Напрыклад, у аперацыйнай сістэме Linux кожнаму карыстальніку адводзіцца асобная дырэкторыя, размешчаная ў / home. Што рабіць калі неабходна даць розным карыстачам магчымасць рэдагаваць адзін і той жа файл? Можна стварыць асобныя файлы ў кожнай дырэкторыі карыстальніка і сінхранізаваць іх праграмным шляхам, або размясціць файл у сістэмнай тэчцы, а карыстальнікам даць на яго спасылкі.

Пачынаючы з версіі 5.3.0 PHP-інтэрпрэтатара, праца са спасылкамі адбываецца аднолькава, як у аперацыйнай сістэме Windows, так і ў Linux. Спасылкі бываюць двух відаў: жорсткія і сімвалічныя. Прынцыпы іх працы адрозніваюцца вельмі моцна.

Сімвалічная спасылка - утрымлівае абсалютны, або адносны шлях да файла, або дырэкторыі. У графічным акне файлавага мэнэджара такая спасылка нічым не вылучаецца. Калі вы пстрыкніце па ёй два разы левай кнопкай мышы, адкрыецца змесціва звязанага з ёй файла ці каталога.

Асаблівасці сімвалічных спасылак:

  • Можна ўсталёўваць на дырэкторыі або файлы.
  • Мае ўласныя правы доступу, адрозныя ад мэтавага файла.
  • Пры выдаленні мэтавага файла спасылка застаецца некранутай.
  • Не прывязаная да пэўнай файлавай сістэме. Калі вы скопируете спасылку на іншую прыладу, яна працягне функцыянаваць.
  • Перасоўванне мэтавага файла ў іншае месца выкліча памылкі пры звароце да сімвалічнай спасылцы.

Цвёрдая спасылка - ўсталёўвае сувязь з ідэнтыфікатарам файла ў пэўнай файлавай сістэме. Гэта больш нізкаўзроўневае рашэнне. Пры яго выкарыстанні кожная жорсткая спасылка, па сутнасці, з'яўляецца тым самым файлам. Нават калі вы выдаліце ​​арыгінальны файл, спасылкі усё роўна працягнуць існаваць і функцыянаваць. Праз іх можна будзе атрымаць змесціва.

Асаблівасці жорсткіх спасылак:

  • Можна ўсталёўваць толькі на файлы.
  • Мае правы доступу, аналагічныя мэтавым файлу.
  • Выдаленне змесціва файла адбудзецца пасля выдалення ўсіх жорсткіх спасылак, якія паказваюць на яго ідэнтыфікатар.
  • Прывязаная да пэўнай файлавай сістэме. Не ўдалося капіраваць на іншую прыладу.
  • Перасоўванне мэтавага файла не ламае жорсткія спасылкі, якія паказваюць на яго.
Чытай яшчэ:   JAVA АБ'ЕКТЫ І СПАСЫЛКІ

нататка

Інструменты па стварэнні і выкарыстанні спасылак, якія разглядаюцца ніжэй, патрабуюць наяўнасці правоў доступу ў поўным скрыпту. Напрыклад, стварэнне спасылкі завершыцца памылкай, калі ў скрыпту няма правоў на запіс у паказаную тэчку або на чытанне мэтавага файла.

Стварэнне спасылак у PHP

У PHP ёсць дзве ўбудаваныя функцыі, якія дазваляюць ствараць жорсткія і сімвалічныя спасылкі. Яны прымаюць адны і тыя ж радковыя параметры і вяртаюць аналагічныя вынікі. Функцыя symlink () стварае сімвалічную спасылку. У першым параметры ёй неабходна перадаць імя мэтавага файла, а ў другім - месца размяшчэння спасылкі. Функцыя верне лагічнае значэнне true у выпадку паспяховага завяршэння, і false, калі адбылася памылка. link () у сваю чаргу адказвае за стварэнне жорсткіх спасылак. Яе выкарыстанне аналагічна папярэдняй функцыі.

//Cоздаем символическую ссылку на файл пользователя$targetFile = '/home/some-user/important-document.txt';$linkFile = '/home/another-user/sym-link-document.txt';if (file_exists($targetFile)) {    if (symlink($targetFile, $linkFile)) {        echo 'Символическая ссылка успешно создана';    } else {        echo 'Возможно нехватает прав доступа';    }} else {    echo 'Целевой файл не существует';}//аналогичная операция для создания жесткой ссылки$linkFile = '/home/another-user/hard-link-document.txt';if (file_exists($targetFile)) {    if (link($targetFile, $linkFile)) {        echo 'Жесткая ссылка успешно создана';    } else {        echo 'Возможно нехватает прав доступа';    }} else {    echo 'Целевой файл не существует';}

Атрыманне імя рэальнага файла

Сімвалічныя спасылкі паказваюць на рэальныя файлы, прысутныя дзесьці ў сістэме. Часам патрабуецца даведацца месца размяшчэння мэтавага файла сімвалічнай спасылкі. Для гэтага ў PHP выкарыстоўваецца функцыя readlink (). Яна прымае ўсяго адзін параметр радковага тыпу - месца размяшчэння спасылкі. Функцыя верне радок, з шляхам знаходжання рэальнага файла альбо false у выпадку памылкі.

Чытай яшчэ:   Драйверы ЗБОРКА ДЛЯ WINDOWS 10

//создадим файл в корне сайта и установим на него ссылку$targetFile = $_SERVER['DOCUMENT_ROOT']. '/real-file.txt';$linkFile = $_SERVER['DOCUMENT_ROOT']. '/test-link.txt';touch($targetFile);if (symlink($targetFile, $linkFile)) {    echo "Символическая ссылка {$linkFile} успешно создана
"; echo 'Она указывает на файл: '. readlink($linkFile);}

Распазнаванне розных спасылак

Часам патрабуецца даведацца, паказвае Ці шлях, запісаны ў радку, на рэальны файл або спасылку. PHP мае убудаваныя прылады і на гэты выпадак. Распазнаванне спасылак адбываецца праз функцыю is_link (). Яна прымае ўсяго адзін параметр радковага тыпу - месца размяшчэння файла. Калі па паказаным шляху знаходзіцца спасылка, функцыя верне значэнне true, у адваротным выпадку, а таксама пры ўзнікненні памылак, будзе вернута false.

//создадим файл в корне сайта и установим на него ссылку$targetFile = $_SERVER['DOCUMENT_ROOT']. '/real-file.txt';$linkFile = $_SERVER['DOCUMENT_ROOT']. '/test-link.txt';touch($targetFile);if (symlink($targetFile, $linkFile)) {    echo "Символическая ссылка {$linkFile} успешно создана
";}//Затем проверим какой путь на что указываетif (is_link($targetFile) !== true) { echo "Файл {$targetFile} является настоящим
";}if (is_link($linkFile) === true) { echo "Файл {$linkFile} является ссылкой
";}

PHP - ВЫСНОВА СПАСЫЛАК НА ФАЙЛЫ - STACK OVERFLOW НА РУССКОМ

Як зрабіць навігацыю?

Каб дадзены скрыпт ствараў пасля 20 высноў новую старонку і так да канца файлаў. Канкрэтна трэба для Вордпресс. Навошта мне гэта трэба? Старонка занадта вялікая. Ці можа ёсць іншыя варыянты, флешка, флейм - што не вельмі хацелася б.

$dir = opendir("/files/"); //путь к файлам
while ($file = readdir($dir)) {
if (($file != ".") && ($file != "..") && ($file != "index.php")) {
$cat = "$file"; // строка, подлежащая частичной замене
$r = array(
"yo",
"ye",
"ts",
"ch",
"sh",
"shch",
"yu",
"ya",
"a",
"b",
"v",
"g",
"d",
"e",
"j",
"z",
"i",
"y",
"k",
"l",
"m",
"n",
"o",
"p",
"r",
"s",
"t",
"u",
"f",
"e",
"_",
"h"
); // что менять ("a" и "b");
$r2 = array(
"ё",
"ё",
"ц",
"ч",
"ш",
"щ",
"ю",
"я",
"а",
"б",
"в",
"г",
"д",
"е",
"г",
"з",
"и",
"и",
"к",
"л",
"м",
"н",
"о",
"п",
"р",
"с",
"т",
"у",
"ф",
"Э",
" ",
"х"
); // на что менять ("0" и "1");
$trans = str_ireplace($r, $r2, $cat);

echo '' .$trans. '
';

}
}

closedir($dir);

Адносная і абсалютная ШЛЯХУ У HTML І PHP - SCHOOL- PHP

Блог: http://zametkinapolyah.ru/

Чытай яшчэ:   PHP ЛІК ў радок

Тэкставая версія: http://zametkinapolyah.ru/verstka-saj...

Паблік блога ў ВК: https://vk.com/zametkinapolyah

Тэматычная група ў ВК: https://vk.com/zametkipohtml

Дапамажыце праекту:

WMR: R288272666982

WMZ: Z293550531456

Яндэкс.Грошы: 410011531129223

У HTML спасылак ёсць шлях, які бывае адносным і абсалютным. Шлях спасылкі - гэта дакумент, на які яна вядзе.

Шлях задаецца пры дапамозе ўнікальнага HTML атрыбуту href.

Напрыклад, zametkinapolyah.ru або youtube.com - абсалютныя шляху, бо яны адназначна ідэнтыфікуюць рэсурс, па якім знаходзіцца дакумент у любым пункце свету. І усё роўна дзе спасылка з такім шляхам прастаўленая: на сайце ў сетцы Інтэрнэт або на лакальным кампутары.

У адносных спасылак шлях выбудоўваецца адносна якога-небудзь аб'екта файлавай сістэмы (тэчка ці нейкі файл). Такія спасылкі будуць выдатна працаваць у тым выпадку, калі структура файлавай сістэмы не будзе змяняцца.

HREF = "CSS / main.css«

href = "verstka-sajtov / html

../img/slider1.jpg

HREF = "C: \\ Users \\ \\ Desktop Aspire \\ HTML \\ Урок 5 \\ space.html"

Чытай на іншых мовах

 беларускіанглійская Нямецкі іспанскі французскі італьянскі партугальская турэцкі арабская ўкраінскі шведскі венгерская балгарскі эстонскі Кітайскі (спрошчаны) в'етнамская румынская тайская славенская славацкая сербская малайская нарвежская латышская Літоўскі карэйская японскі інданезійская хіндзі іўрыт фінскі грэцкі нідэрландская чэшскі дацкая харвацкая Кітайскі (традыцыйны) тагальская урду Азейбарджанский армянскіпольскі бенгальская грузінскі казахскі каталонская Mongolski руская Таджитский Tamil'skij тэлугу Узбецкий

дадаць каментар

Ваш e-mail не будзе апублікаваны. Абавязковыя палі пазначаныя *