Класс Link
Давайте сделаем класс, который будет создавать HTML ссылку. Назовем его Link . Вот так мы будем пользоваться нашим классом:
Сделаем так, чтобы даже если атрибут href не задан, то по умолчанию он становился пустыми кавычками:
Самостоятельно реализуйте описанный класс Link .
С помощью этого класса создайте меню из 5 ссылок. Пусть первая ссылка ведет на страницу /1.php , вторая — на страницу /2.php и так далее.
Разместите созданную менюшку в отдельном файле, например, в menu.php .
Создайте страницы, на которые ведут ссылки вашей менюшки. Добавьте в ним какой-нибудь текст.
Подключите инклудом к тексту каждой страницы вашу менюшку из файла. Убедитесь, что ссылки из этой менюшки будут работать корректно.
Активация ссылок
После выполнения задач у вас должна получится менюшка. Давайте сделаем так, чтобы в этой менюшке выделялась каким-то образом та ссылка, на странице которой мы находимся.
Такая ссылка обычно называется и ее выделение происходит путем добавления ей CSS класса active (общепринятое название).
Добавленный к ссылке класс active каким-то образом выделяет ее — подчеркивает, красит в красный цвет и тому подобное: все это регулируется CSS стилями для этого класса.
Итак, давайте сделаем так, чтобы ссылки автоматически активировались (добавляли себе CSS класс active ), если их href совпадает с урлом сайта.
URL сайта можно достать вот так:
Чтобы прочитать href нашей ссылки, используем геттер getAttr , унаследованный от родительского класса Tag . Вот так:
Чтобы добавить нашей ссылке CSS класс active , используем метод addClass , также унаследованный от родителя. Вот так:
Соберем все вместе и напишем вспомогательный метод activateSelf , который будет проверять, совпадает ли href ссылки и URI , и активировать ее, если это так:
Осталось придумать в каком месте вызывать созданный нами метод. В конструкторе класса Link этого делать нельзя, так как в момент вызова конструктора href ссылки еще не задан (конструктор же вызывается в самом начале, а потом методы цепочки, в том числе setAttr , который и задает href ссылки).
После таких рассуждений становится очевидным, что метод activateSelf следует вызвать в момент вывода ссылки на экран, то есть в методе show , с помощью которого скорее всего и будет формироваться ссылка.
Однако, представляется возможным то, что при использовании нашего класса кто-то будет применять метод open и метод close отдельно.
Хотя описанное выше и маловероятно, тем не менее вызовем метод activateSelf в методе open , переопределив тем самым метод родителя:
setAttr(‘href’, »); parent::__construct(‘a’); > // Переопределяем метод родителя: public function open() < $this->activateSelf(); // вызываем активацию return parent::open(); // вызываем метод родителя > private function activateSelf() < if ($this->getAttr(‘href’) === $_SERVER[‘REQUEST_URI’]) < $this->addClass(‘active’); > > > ?>?php>
Так как метод show использует внутри себя метод open , то изменения для метода show произойдут автоматически. Можем теперь проверить работу нашего класса:
Итак, теперь ссылки активируют сами себя. Это реально круто! При этом нам понадобилось совсем мало кода, чтобы реализовать такое поведение. Все потому, что у нас есть базовый класс Tag , который прячет внутри себя много универсального кода для манипуляций с тегами.
Реализуя новые классы на основе класса Tag мы не держим в голове детали реализации этого класса Tag . И вообще не видим код этого класса — он где-то в другом файле (если, конечно же, вы его туда вынесли) и не мешает нам работать. Мы просто знаем, какие методы предоставляет этот класс своим потомкам — и пользуемся ими.
Поэтому классы-потомки и получаются такими маленькими и изящными.
На самом деле наш код класса Link еще более крут, чем кажется. Дело в том, что наши ссылки могут иметь и другие — постоянные — классы. При этом наша активация никак не будет мешать этим классам — они будут оставаться, просто к ним будет добавляться еще и класс active .
Все потому, что так работает метод addClass — он добавляет новый класс к уже существующим классам.
Добавьте в ваш класс Link активацию ссылок.
Проверьте работу активации ссылок на менюшке, которую вы создали в предыдущих задачах. Характерно, что правки в саму менюшку вносить не надо — создание ссылок никак не поменялось, просто ссылки теперь активируют сами себя. Попереходите по ссылкам меню и убедитесь в том, что соответствующие ссылки активируются.
Не очень хорошо то, что название класса active жестко зашито в коде (вдруг мы захотим поменять его на другое). Вынесите его в константу класса (константу используем для того, чтобы в процессе работы скрипта случайно не изменить наш CSS класс).
How to Create Links in PHP
Angela Bradley is a web designer and programming expert with over 15 years of experience. An expert in iOS software design and development, she specializes in building technical hybrid platforms.
Websites are filled with links. You’re probably already aware of how to create a link in HTML. If you’ve added PHP to your web server to be able to enhance your site’s capabilities, you may be surprised to learn that you create a link in PHP the same as you do in HTML. You have a few options, though. Depending on where in your file the link is, you might present the link HTML in a slightly different way.
You can switch back and forth between PHP and HTML in the same document, and you can use the same software—any plain text editor will do—to write PHP as to write HTML.
How to Add Links to PHP Documents
If you are making a link in a PHP document that is outside of the PHP brackets, you just use HTML as usual. Here is an example:
If the link needs to be inside the PHP, you have two options. One option is to end the PHP, enter the link in HTML, and then reopen PHP. Here is an example:
The other option is to print or echo the HTML code inside the PHP. Here is an example:
Another thing you can do is create a link from a variable. Let’s say that the variable $url holds the URL for a website that someone has submitted or that you have pulled from a database. You can use the variable in your HTML.
For Beginning PHP Programmers
If you are new to PHP, remember you begin and end a section of PHP code using and ?> respectively. This code lets the server know that what is included is PHP code. Try a PHP beginner’s tutorial to get your feet wet in the programming language. Before long, you’ll be using PHP to set up a member login, redirect a visitor to another page, add a survey to your website, create a calendar, and add other interactive features to your webpages.
URL Functions
Note that $_SERVER[«HTTP_REFERER»] may not include GET data that was included in the referring address, depending on the browser. So if you rely on GET variables to generate a page, it’s not a good idea to use HTTP_REFERER to smoothly «bounce» someone back to the page he/she came from.
just a side note to the above you will need to add the ?
Note also that the URL shown in $HTTP_REFERER is not always the URL of the web page where the user clicked to invoke the PHP script.
This may instead be a document of your own web site, which contains an HTML element whose one attribute references the script. Note also that the current page fragment (#anchor) may be transmitted or not with the URL, depending on the browser.
Examples:
In such case, browsers should transmit the URL of the container document, but some still persist in using the previous document in the browser history, and this could cause a different $HTTP_REFERER value be sent when the user comes back to the document referencing your script. If you wanna be sure that the actual current document or previous document in the history is sent, use client-side JavaScript to send it to your script:
And then check the value of $js in your page script to generate appropriate content when the remote user agent does not support client-side scripts (such as most index/scan robots, some old or special simplified browsers, or browsers with JavaScript disabled by their users).
Following method do not show the URL in user browser (as the author claimed) if the code resides in the source page of FRAME or IFRAME (say SRC=»sourcepage.php») . In that case the URL of the SOURCE page is displayed.
$url = sprintf(«%s%s%s»,»http://»,$HTTP_HOST,$REQUEST_URI);
echo «$url»;
To check if a URL is valid, try to fopen() it. If fopen() results an error (returns false), then PHP cannot open the URL you asked. This is usually because it is not valid.
When using a multiple select on a form, I ran into a little issue of only receiving the last value form the select box.
I had a select box named organization_id with two values (92 and 93).
To get the values of both, I had to use the following:
$temp_array = split(«&», $_SERVER[‘QUERY_STRING’]);
foreach($temp_array as $key=>$value) if(substr($value, 0, 15) == «organization_id») $_GET[‘organizations’][] = substr($value, 15, strlen($value));
>
>
this results in a $_GET array like this :
(
[page] => idea_submission
[organization_id] => 93
[organizations] => Array
(
[0] => =92
[1] => =93
)
Ссылки. Тег
Ссылки являются основой гипертекстовых документов и позволяют переходить с одной Web-страницы на другую, а также на определенное место внутри Web-страницы. Особенность их состоит в том, что сама ссылка может вести не только на HTML-файлы, но и на файл любого типа, причем этот файл может размещаться совсем на другом сайте. Главное, чтобы к файлу, на который делается ссылка, был доступ.
Пара тегов . обрамляет текст ссылки или картинку, которая служит ссылкой.
Атрибуты тега
- _blank – документ откроется в новой вкладке,
- _parent – документ откроется во фрейме-родителе (если такого нет, то в текущей вкладке),
- _self – документ откроется в текущей вкладке (по умолчанию),
- _top – отменяет все фреймы и загружает страницу в полном окне браузера (если фреймов нет, то в текущей вкладке).
Использование target=»_blank» осуждается спецификацией HTML.
Чтобы открыть документ в новой вкладке, можно использовать атрибут onclick=»return !window.open(this.href)»
download Этот атрибут дополняет существующий атрибут href и говорит браузеру, что ресурс, на который указывает href нужно скачать, а не открывать. Значение атрибута download используется для задания названия загружаемого файла.
Адреса ссылок
Для навигации по страницам и сайта нам потребуется уметь задавать адреса ссылок. Адреса ссылок могут быть абсолютными или относительными.
Абсолютный адрес ссылки
Абсолютный адрес состоит из трех частей:
- Протокол. Это может быть «http://» или «https://».
- Доменное имя сайта. Например, «htmlweb.ru».
- Полное имя файла целевого документа (включая папки) относительно корня сайта. Например, «/analiz/seo.php».
Вместе это выглядит как http://htmlweb.ru/analiz/seo.php . Для так заданного имени файла существует название: Универсальный Локатор Ресурса (URL). URL текущего документа выводится в адресной строке браузера.
Пример
Абсолютная ссылки на страницу другого сайта:
Относительный адрес ссылки
Относительный адрес состоит из полного имени файла целевого документа (включая папки) относительно корня сайта или относительно файла исходного документа.
Если адрес указывается относительно корня сайта, то его полное имя начинается с косой черты.
Если вместо имени файла задать имя папки, то будет отображен индексный файл. Это может быть index.html, index.htm или index.php из этой папки.
Примеры
1. Относительная ссылка на целевой документ в той же папке, что и исходный документ:
2. Относительная ссылка на документ в папке, которая находится на одном уровне с исходным документом:
3. Относительная ссылка на документ, который находится на уровень выше исходного документа:
4. Относительная ссылка на документ, который находится в корне сайта:
Ссылка на конкретное место Web-страницы
Для создания ссылки на определенное место Web-страницы надо сначала поставить закладку-метку в соответствующее место и дать ей имя:
В адресе ссылки на метку в текущем документе перед именем метки ставится знак «решетка» ( # ):
В адресе ссылки на метку в другом документе указывается ее адрес и в конце добавляется знак «решетка» ( # ) и имя метки:
Данные в адресной строке браузера, которые идут после знака «решетка» ( # ), называют hash-данными (хэш-данными) или просто hash (хэш).
Отправка e-mail
Ссылка на адрес электронной почты (E-Mail):
Связь с FTP
FTP (File Transfer Protocol, протокол передачи файлов) позволяет пользователям копировать файлы с других компьютеров (FTP-сайтов). Таким методом компании часто распространяют свои новые программные продукты. Если не указывать имя файла, браузер выведет перечень всех файлов в каталоге. Это особенно удобно, если вы хотите, чтобы читатель получил доступ к нескольким файлам сразу, например, в случае больших файлов, разбитых на части для удобства передачи.
Звонок и СМС с браузера мобильного телефона
Позвонить по номеру с браузера мобильного телефона:
Отправить СМС с браузера мобильного телефона:
SMS для 12345678 SMS “Hello my friend” для 12345678 SMS для нескольких телефонных номеров