Мы с Вами уже . И теперь я решил затронуть тему работы с каталогами в PHP . В этой статье Вы научитесь создавать каталоги в PHP , удалять их и считывать из них файлы и подкаталоги.
Начнём с самого простого: создание каталога в PHP :
mkdir("new_dir");
?>
После запуска этого скрипта у Вас будет создан пустой каталог "new_dir ".
Удалить пустой каталог очень просто. Для этого используется функция rmdir() .
rmdir("new_dir");
?>
А вот теперь перейдём к работе с содержимым каталогов через PHP . Здесь есть очень простые правила, которые необходимо соблюдать. Все эти правила очень логичны, и Вы их применяете, когда вручную просматриваете содержимое каталогов:
- Открыть каталог.
- Считать содержимое.
- Закрыть каталог.
Чтобы не мучить Вас в ожиданиях, сразу приведу код, который выводит имена файлов и категорий внутри заданного каталога:
$dir = opendir("images");
while (($f = readdir($dir)) !== false)
echo $f."
";
closedir($dir);
?>
В результате Вы увидите список всех файлов и каталогов внутри каталога "images ". Также Вы увидите два интересных имени ". " и ".. ". Первый означает "текущий каталог ", а ".. " - родительский.
Теперь подробно о функциях, используемых в этом примере:
- Функция opendir(string $path) - открывает каталог, находящийся по пути $path , а также возвращает дескриптор, необходимый для работы с этим каталогом.
- Функция readdir(resource $dir) - считывает текущий элемент в каталоге dir . Текущий элемент задаётся указателем, который сдвигается при каждом вызове. Поэтому получается, что каждый раз эта функция возвращает новый элемент из каталога. Когда все элементы закончились, то функция readdir() возвращает false .
- Функция closedir(resource $dir) - закрывает каталог dir .
Это все самые важные функции для работы с каталогами в PHP . Однако, хочется добавить ещё одну очень важную деталь по поводу функции rmdir() , которая удаляет каталог. Если Вы внимательно читали, то я написал, что эта функция удаляет "пустой каталог ", то есть в котором нет ни одного файла и каталога (кроме ". " и ".. "). Другими словами, если в каталоге будет хотя бы один файл, то функция rmdir() не сработает . Вот как решить эту проблему Вы узнаете в следующей статье, поэтому подписывайтесь на обновления, чтобы не пропустить её появление.
Закончили? А, мы с вами написали крутую прогу для подбора web-цветов. Замечательно. На этом вводный курс в PHP можно считать закрытым.
Теперь приступим непосредственно к программированию.
Мне думается, что описывать общие принципы — это не совсем то, чего вы от меня ждете. Я предлагаю несколько иное. Давайте просто возьмем, да и напишем вместе цельный web-проект! По всем правилам. Да так, чтобы был он полезен многим, да чтобы на него ложился любой дизайн, да чтобы все у нас было как у взрослых: замысел, план, блок-схема и все остальное. С использованием PHP, MySQL и особенностей Apache. Договорились? Ну вот и ладненько.
Я сегодня посоветовался с Александром Малюковым и решил принять его идею. Пишем систему персонального паблишинга. Или "колонку обозревателя", как назвал ее Саша.
Задача.
Написать комплект скриптов на языке PHP(4), предоставляющие следующие возможности пользователю:
- Возможность публиковать тексты через стандартную web-форму.
- Возможность изменять и удалять опубликованные тексты.
- Возможность создавать и редактировать темы, объединяющие тексты.
- Автоматическое создание оглавления.
- Автоматический вывод выбранного текста в рамках заложенного дизайна.
- Подсчет элементарной статистики посещения сайта.
...и так далее.
Только созданный не в виде десятка примитивных функций, а в виде солидного пакета скриптов со всеми современными примочками: back office, mail-информер, полный контроль над ошибками, и прочей фигней, без которой крупный проект просто не сможет эффективно существовать.
Начнем мы с планирования. Но-но, попрошу без соплей в этом месте! Планирование — важнейшая часть создания большого проекта. Мы же пишем большой проект, а не фигню какую-то.
Для начала спланируем место в нашей директории, чтобы правильно сохранять то, что у нас будет рождаться.
Предположим, что вы выбрали правильного провайдера, который хостит ваши страницы на одной из UNIX-систем. Например, на FreeBSD. И полный путь к вашему каталогу выглядит так:
/home/roma/
Мне почему-то показалось, что вас непременно зовут Романом.
А директория (или "папка", — как сейчас принято говорить), в которой должны лежать html-файлы сайта, называется:
/home/roma/WWW/
А что, так оно чаше всего и бывает. Еще эту папку называют html
или public_html
.
Теперь, нам нужна папка, где мы будем хранить все наши скрипты. Это должна быть папка НЕ в директории WWW, иначе все желающие смогу посмотреть ваши скрипты и найти в них лазейки для кряка. Нам это надо? Нет, нам это не надо. Поэтому, для необходимых нам файлов-скриптов мы создаем:
/home/roma/req/
req — это от слова require (нуждаться).
Еще нам понадобится папка, в которую мы сложим куски html для динамической сборки страниц. Назовем ее inc
(от include).
/home/roma/inc/
Еще папка для хранения данных:
/home/roma/data/
И папка для хранения периодически выполняемых программ службой cron:
/home/roma/cron/
Давайте до кучи создадим в папке WWW папку pic
(от picture) для хранения всякой графики.
Все. Наш каталог /home/roma/ выглядит вот так:
./req
./data
./inc
./WWW
./WWW/pic
Следующим этапом я предлагаю создать базу данных для хранения данных, простите за тавтологию.
Если вы не знакомы с языком SQL, то это вас не должно пугать. Во-первых, я постараюсь прокомментировать то, что будет написано на этом языке. А во-вторых, если вы потратите час на прочтение любого общего руководства по языку запросов к БД SQL, то сможете без каких-либо проблем читать запросы на этом языке и писать свои. Там и надо-то знать с десяток ключевых слов и несколько стандартных конструкций запросов. Все остальное — ваша фантазия (я преклоняюсь перед изобретателями этого языка. Ничего более совершенного, созданного человеком в области программирования, я в жизни не встречал). Найти документацию по стандартным SQL-возможностям можно на том же www.citforum.ru .
Базу назовем так же, как и account у провайдера — ROMA. Во-первых, чтобы не путаться, а во-вторых, обычно так провайдер и выдает доступ к SQL-серверу.
Если база еще не создана, то мы ее создаем:
create database roma;
и переходим в нее:
use roma;
Нам потребуются три таблицы: таблица разделов, таблица текстов и таблица статистики. Создадим пока две. Третья подождет.
Информацию по работе с MySQL-сервером вы найдетет на сайте производителя: www.mysql.com . Или поищите FAQ-и при помощи поисковых серверов. Их полным-полно.
Таблица tbl_cats (категории, разделы):
create table tbl_cats(
c_id int not null auto_increment primary key,
c_name varchar(50) not null default ""
);
Поясняю. Тут написано, что таблица tbl_cats имеет два поля: c_id — уникальный целочисленный идентификатор записи и c_name — буквенное название раздела, собственно.
Можем сразу добавить в нашу таблицу первый раздел:
insert into tbl_cats(c_name) values("web-обзоры");
Теперь вторая таблица:
create table tbl_texts(
t_id int not null auto_increment primary key,
t_name varchar(200) not null default "",
t_dt datetime not null
);
В которой написано почти тоже самое: идентификатор, название текста и дата+время публикации работы (t_dt).
Мы постарались отобрать лучшие каталоги сайтов, в которые стоит добавить ресурс. Большая их часть – бесплатные белые каталоги, которые не требуют размещения обратных ссылок и ставят прямую ссылку на ваш проект. Регистрация в каталогах позволит разнообразить ссылочную массу на проект и в ряде случаев – повысить тИЦ.
Самые известные каталоги сайтов
Бесплатно берут некоммерческие сайты, представляющие большой интерес для пользователей. Если по вашей теме в ЯК мало проектов – шансы на бесплатную регистрацию увеличиваются. Для остальных проектов – регистрация платная и на момент подготовки статьи стоимость добавления сайта составляет 14750 руб. с НДС. Но готовность оплатить регистрацию совсем не гарантирует добавления в Яндекс.Каталог – модерация жесткая.
Регистрация в Яндекс.Каталоге повышает тИЦ, может дать на сайт переходы (при условии, что ваш сайт имеет большой тИЦ) и другой профит.
Крупнейший каталог сайтов Интернета, полностью бесплатный, поддерживается волонтерами. Попадание в DMOZ может повысить доверие к сайту со стороны поисковых систем, например, Google. Такой трафик, как ЯК, обычно не дает. Попасть в каталог очень сложно – оптимально стать редактором того раздела каталога, в который вы планируете добавить сайт – и став редактором, добавить. Либо наладить контакт с нужным волонтером DMOZ.
На момент написания статьи прием новых сайтов в каталог остановили – вместо каталога, предлагали добавить сайт в рейтинг Mail.ru (top.mail.ru). Если каталог возобновить работу – будет очень здорово, т.к. проект старый и ссылка с него – будет полезна.
Рейтинг сайтов и каталог в одном лице. Регистрация бесплатная. Для участия в рейтинге требуется установить счетчик на сайт. Рекомендуем закрывать статистику от просмотра, чтобы ваши данные не могли видеть конкуренты. Если сайт популярный в своей нише, рейтинг может дать трафик и рекламодателей.
Есть возможность бесплатной и платой регистрации. Последняя на момент подготовки статьи стоит около 300 рублей, но реально ускоряет модерацию и гарантирует добавление сайта. Плюсы платной регистрации – возможность более подробно описать сайт и добавить с карточки не одну, а несколько ссылок на разные разделы.
Каталог принимает корпоративные, коммерческие сайты.
Каталог предлагает несколько вариантов регистрации, в том числе бесплатное и платное добавление сайта.
Есть ограничение – не добавляет сайты с бесплатным хостингом.
Просто хороший каталог сайтов.
Платные каталоги, но на наш взгляд, стоящие своих денег:
12. Webproverka.com
Каталог посещают несколько тысяч посетителей в сутки, поэтому сайты из каталога могут получить не только ссылку, но и трафик. Стоимость регистрации — 10 долларов.
13. Rubo.ru
Стоимость регистрации 5 долларов или 150 рублей на момент подготовки обзора каталогов.
Список каталогов сайтов, не вошедших в ТОП-10:
Большая часть указанных ниже каталогов являются белыми и бесплатными, не требуют обратную ссылку в обмен на регистрацию. Однако правила добавления сайтов в каталоги могут меняться, поэтому информация актуальна только на момент публикации статьи. По разным причинам мы не поставили активные ссылки на перечисленные ниже проекты.
№ | URL каталога | Примечание |
1 | goon.ru | Все тематики |
2 | webcat.info | Все тематики |
3 | sabrina.ru | Все тематики |
4 | openlinks.ru | Все тематики |
5 | refer.ru | Все тематики |
6 | topstat.ru | Все тематики |
7 | catalog.deport.ru | Все тематики |
8 | s-catalog.ru | Все тематики |
9 | faststart.ru | Все тематики |
10 | dir.ikernel.org | Все тематики |
11 | nobius.ru | Все тематики |
12 | irdir.info | Все тематики |
13 | in-catalog.com | Все тематики |
14 | precat.ru | Все тематики |
15 | cat.rusbic.ru | Все тематики |
16 | lermont.ru | Все тематики |
17 | webest.info | Все тематики |
18 | catalog.monty74.ru | Все тематики |
19 | ilinks.ru | Все тематики |
20 | wmcap.ru | Все тематики |
21 | gendilana.ru/cncat | Все тематики |
22 | 781313.ru/site_cat.php | Все тематики |
23 | catalog.rufox.ru | Все тематики |
24 | t0psites.com | Все тематики |
25 | catalog.yuga.ru | Краснодарские сайты |
26 | 2-999-999.ru | Красноярск |
27 | edirectory.ru | Все тематики |
28 | rosfirm.ru | Сайты компаний |
29 | www.spr.ru | Сайты компаний |
30 | www.yell.ru | Сайты компаний |
31 | rosmarket.ru | Сайты компаний |
32 | yp.piter.com | Сайты компаний |
33 | regtorg.ru | Сайты компаний |
34 | povezlo.su | Все тематики |
35 | miruslug.info | Сайты компаний |
36 | dir.org.ru | Все тематики |
37 | piter.nev.ru | Санкт-Петербург |
38 | catalogr.ru | Стартапы, сервисы |
39 | ins.org.ru | Страхование |
40 | linkstroy.ru | Строительная тематика |
Если вы знаете другие бесплатные белые каталоги, в которых стоит зарегистрировать сайт, пожалуйста, добавьте их адреса в комментариях к статье.
Как еще получить бесплатные ссылки? Полезные базы!
- Посмотрите 45 сервисов для размещения пресс-релизов . Пресс-релиз — это документ, рассказывающий о какой-то новости или событии на сайте или в компании. В пресс-релизе можно поставить ссылку на сайт, в том числе — активную.
- Посмотрите бесплатные каталоги статей . Подборка не новая, но часть площадок еще работают. Обратите внимание на площадки в комментариях к посту.
- 26 лучших каталогов и справочников компаний , куда можно бесплатно добавить корпоративный сайт или интернет-магазин (база 2019 года! ).
Где еще стоит зарегистрировать сайт, помимо каталогов?
- Профильные и тематические рейтинги сайтов – могут дать не только ссылку с тематически близкого сайта, но и реальные переходы;
- Региональные каталоги. Пример хорошего регионального каталога — Uralweb.ru
- Сервисы закладок, которые индексируются поисковыми системами. Кстати, у Яндекса был свой сервис закладок Zakladki.yandex.ru, но сейчас он уже закрыт.
- Профили в социальных сетях: ВКонтакте, Одноклассники, Мой Мир, LinkedIn и другие.
- Справочник предприятий Яндекса sprav.yandex.ru – дает прямую ссылку на сайт. В справочнике можно разместить компанию на бесплатной и платной основе. Платно стоит не дешево, поэтому если Вы имеете опыт платного размещения — напишите в комментариях, остались ли довольны результатами?
- Доски объявлений, но только лучшие из лучших. Найти промышленные доски объявлений, где стоит размещать свои предложения, можно на сайте Snabjenci.ru . База там не новая, поэтому не все сайты могут работать. Однако в свое время на сайте были собраны основные доски объявлений по основным отраслям.
- Сайты с вакансиями. на ряде таких сайтов можно регистрироваться как компания-работодатель и создавать свой профиль, открытый для индексации поисковыми системами. В профиле можно указать информацию о компании и ссылку на сайт. Хорошая подборка сайтов вакансий собрана здесь: http://www.kadrof.ru/cat_vac.shtml .
- Биржи фриланса. После регистрации на бирже Вы получаете возможность заполнить портфолио. В портфолио можно указывать ссылки на сайты, которые Вы разработали или продвигаете. Поскольку профили фрилансеров открыты для индексации поисковыми системами, то ссылки из портфолио также попадают в индекс. Таким образом с разных бирж фриланса можно получить 10-15 ссылок на сайт. Список популярных бирж можно найти здесь: http://www.kadrof.ru/cat_exchange.shtml .
Если у Вас есть другие идеи, куда еще можно добавить сайт, пожалуйста, делитесь ими в комментариях. Будем рады за дополнение нашего материала полезной информацией.