HTML - спецсимволы
Так на всякий случай, может пригодиться:
Название | Символ | Числовой код | Мнемонический код |
Прямая кавычка | “ | " | " |
Амперсанд | & | & | & |
знак «меньше» | < | < | < |
Знак «больше» | > | > | > |
Торговая марка | ™ | ™ | &trade |
Неразрывный пробел |   |   | |
Цент | ў | ¢ | ¢ |
Фунт | Ј | £ | £ |
Знак валюты | ¤ | ¤ | ¤ |
Йена | Ґ | ¥ | ¥ |
Вертикальная строка | ¦ | ¦ | ¦ |
Знак параграфа | § | § | § |
Знак копирайта | © | © | © |
Знак отрицания | ¬ | ¬ | ¬ |
Знак "зарегестрировано" | ® | ® | ® |
Знак градуса | ° | ° | ° |
Знак "минус" | − | &minus | |
Длинное тире | | – | |
Знак "плюс минус" | ± | ± | ± |
Знак "микро" | µ | µ | &mikro |
Знак абзаца | ¶ | ¶ | ¶ |
Точка-маркер | · | · | · |
Степень 1 (номер) | № | ¹ | ¹ |
Левая типографская кавычка | « | « | « |
Правая типографская кавычка | » | » | » |
Знак умножения / кавычки/ | * | × | × |
Знак деления | / | ÷ | ÷ |
Как узнать IP посетителя сайта
Казалось бы, нет ничего проще - ip адрес посетителя заносится Апачем в переменную $_SERVER['REMOTE_ADDR'] но есть некоторые нюансы...
Пользователь может находится за прокси-сервером а это значит что в REMOTE_ADDR будет адрес не пользователя а прокси-сервера. Если пользователь использует анонимный прокси-сервер с целью спрятать свой ip адрес то определить его реальный адрес вряд ли получится, но если пользователь использует не анонимный прокси, например экономит трафик или еще зачем, то его вполне можно вычислить по заголовкам HTTP_X_FORWARDED_FOR, но при этом нужно учитывать, что если он выходит через прокси своей организации то там может содержаться внутренний ip адрес который нам не нужен.
Все вышесказанное учитывается в вот какой несложной функции:
function get_ip(){ $alt_ip = $_SERVER['REMOTE_ADDR']; if (isset($_SERVER['HTTP_CLIENT_IP'])){ $alt_ip = $_SERVER['HTTP_CLIENT_IP']; } else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)){ // make sure we dont pick up an internal IP defined by RFC1918 foreach ($matches[0] AS $ip){ if (!preg_match("#^(10|172\.16|192\.168)\.#", $ip)){ $alt_ip = $ip; break; } } } else if (isset($_SERVER['HTTP_FROM'])){ $alt_ip = $_SERVER['HTTP_FROM']; } return $alt_ip; }
SPF для работы с Gmail
Как создать SPF запись для сервера, который сам посылает почту, скажем из различных PHP скриптов на сайте, сам сервер при этом не является MX майлсервером - все ящики лежат на 1and1.com, да еще некоторые из пользователей посылают почту от имени данного сервера через Gmail?
Компетентные источники утверждают, что SPF запись будет выглядеть как то так:
"v=spf1 a mx include:aspmx.googlemail.com ~all"
Хотя несколько вещей мне непонятны, а именно, при попытке посмотреть SPF для гугла, выдается странное:
> nslookup -type=ALL aspmx.googlemail.com
> "v=spf1 redirect=_spf.google.com"
т.е. меня как бы послали на _spf.google.com, но во первых в доменном имени не может быть знака _ - те кто хоть раз пробовал настроить на локальной станции виртуальный домен со значком подчеркивания в имени должны на всю жизнь запомнить и так больше никогда не делать, во вторых домена _spf.google.com не существует...
> nslookup -type=ALL _spf.googlemail.com
> *** UnKnown can't find _spf.googlemail.com: Non-existent domain
кто-нибудь может объяснить данный феномен?
&& в коммандной строке
Чтобы перезапустить Apache в *nix системах достаточно ввести /etc/init.d/httpd restart после некоторой практики запомнить такое и набрать не представляет труда, но вот если вы работаетe под Windows то придется сначала набрать net stop apache2, подождать когда апачь остановится, потом набрать net start apache.
В принципе все просто, но вот ждать я не люблю - это не сложно но раздражает, нельзя ли набрать команду и забыть? Решение подсмотрел в Unix системах - можно писать команды в одну строчку используя разделитель && - под Windows так тоже можно.
net stop apache2 && net start apache2
Теперь перегрузить Апач можно гораздо быстрее...