Archive for the ‘Web’ Category

FTP + CURL

Пара способов, загрузить файлы на фтп при помощи курла.
Первый, самый простой и расово верный:

curl -v -T filename ftp://login:password@ftp.site.ru

Второй, немного побольше, при помощи php

function UploadFTP($ftpLogin, $ftpPass, $ftpAddr, $ftpFile){
 $remoteurl = "ftp://${ftpLogin}:${ftpPass}@${ftpAddr}${ftppath}/${ftpFile}";
 $ch = curl_init();
 $fp = fopen($ftpFile, "rb");
 curl_setopt($ch, CURLOPT_URL, $remoteurl);
 curl_setopt($ch, CURLOPT_UPLOAD, 1);
 curl_setopt($ch, CURLOPT_INFILE, $fp);
 curl_setopt($ch, CURLOPT_INFILESIZE, filesize($ftpFile));
 $error = curl_exec($ch);
 curl_close($ch); 
 return $error;
}

Еще один вариант robots.txt для wordpress

Нашел на одном из блогов такой вариант записи robots.txt

User-agent: *
 	Allow: /

Disallow: /wp-content/
 	Disallow: /trackback/
 	Disallow: /wp-admin/
 	Disallow: /archives/
 	Disallow: /*?
 	Disallow: /*.js$
 	Disallow: /*.inc$
 	Disallow: /*.css$
 	Disallow: */trackback/
 	Disallow: /c/
 	Disallow: /author/
 	Disallow: /tag/

User-agent: Mediapartners-Google
 	Allow: /

User-agent: Adsbot-Google
 	Allow: /

User-agent: Googlebot-Image
 	Allow: /

User-agent: Googlebot-Mobile
 	Allow: /

#User-agent: ia_archiver-web.archive.org
 	#Disallow: /

Sitemap: http://wpswitch.com/robots.txt

Сразу видно, что расчитано на чпу вида %category%.
Еще интересен вариант с отсечением js, inc и css. Хотя вроде цсс итак не индексируется.

Полезные регулярки.

Несколько полезных примеров регулярок, которые можно скопипастить по мере нужды. Также небольшая памятка по составлению и функциям.

Примеры шаблонов

Выражение Совпадает
foo Слово foo
^foo Начинается с foo
foo$ Кончается с foo
^foo$ Точное совпадение с foo
[abc] a, b или c
[a-z] Любая строчная буква
[^A-Z] Любой  символ не в верхнем регистре
(gif|jpg) Совпадает либо gif либо jpeg
[a-z]+ Одна  или более строчных букв
[0-9.-] Любое число, точка или минус
^[a-zA-Z0-9_]{1,}$ Любое слово, в котором как минимум одна буква, число или _
([wx])([yz]) wy, wz или xy, xz
[^A-Za-z0-9] Любой символ (не буква и не цифра)
([A-Z]{3}|[0-9]{4}) Совпадает три буквы или четыре цифры

Read On…

Вертикальный текст в html

Когда я делал карту сайта, захотелось отобразить заголовки категорий вертикально. Но ни html, css пока сделать такого не позволяют. Хотя нет, css позволяет задать порядок расположения слов для языков, у которых порядок написания справа налево и сверху вниз (китайский например), но для кирилицы это не пойдет.
Как еще можно сделать текст вертикальным? Можно обрезать слово по буквам и разместить их в столбик. Можно применить javascript.
Есть еще один способ — создать картинку на лету из svg. Read On…

Карта сайта — какая у вас?

Карты сайта обычно у всех одинаковы — это простыня со списком ссылок, которых чем больше — тем лучше. Считается, что так лучше в плане сео. И хотя для ботов уже давно делают свою карту, в xml, многие продолжают делат как раньше.Особенно часто для вп используют плагин dagon sitemap generator.

Но можно все сделать красиво. Нашел вот примерчик, как можно сделать красивую карту сайта.

slickmap-css-sitemap

Данный пример хорошо подходит для коммерческого сайта, а вот для блога переделать его проблемно. Особенно, если постов много и категорий.
Немного поколдовав, я сделал вот такую карту сайта с использованием jQuery . Под осликами наверно не будет корректно отображаться.
sitemap Read On…

Гугл не использует meta keywords в ранжировании.

И не использовал, как оказалось.
Q: Does Google ever use the «keywords» meta tag in its web search ranking?
A: In a word, no.

В метатегах вообще смысла не осталось. По примеру с их блога, дескрипшн выводится в случае совпадения искомых слов в нем.
For example, we do sometimes use the «description» meta tag as the text for our search results snippets, as this screenshot shows:

Источник

Скрыть/показать несколько элементов — примеры jQuery

Одновременно выводит несколько скрывающихся/появляющихся блоков. Я использовал при создании своей карты сайта.

// Andy Langton's show/hide/mini-accordion - updated 18/03/2009
// Latest version @ http://andylangton.co.uk/jquery-show-hide

// this tells jquery to run the function below once the DOM is ready
$(document).ready(function() {

// choose text for the show/hide link - can contain HTML (e.g. an image)
var showText='Show';
var hideText='Hide';

// append show/hide links to the element directly preceding the element with a class of "toggle"
$('.toggle').prev().append(' (<a href="#">'+showText+'</a>)');

// hide all of the elements with a class of 'toggle'
$('.toggle').hide();

// capture clicks on the toggle links
$('a.toggleLink').click(function() {

// change the link depending on whether the element is shown or hidden
$(this).html ($(this).html()==hideText ? showText : hideText);

// toggle the display - uncomment the next line for a basic "accordion" style
//$('.toggle').hide();$('a.toggleLink').html(showText);
$(this).parent().next('.toggle').toggle('slow');

// return false so any link destination is not followed
return false;

});
});

Section one: a div with a paragraph

You can show/hide an entire div by giving it a class of «toggle». Links and other child elements will work fine too. The element directly before this one is a heading, so it gets a show/hide link appended.

Section two: single paragraph

A single paragraph can be hidden by giving it a class of toggle too. I can’t help but be impressed by how easy it is to use jquery — even for someone with limited programming and javascript experience like me. Again, the preceding element is a heading.

Now: a list

  • You can even hide a list
  • Just give the <ul> the toggle class
  • This time the preceding element is a paragraph
  • Подсмотрел тут

Загрузка изображений на imageshost по курлу

Загружает по курлу указанный урл (грузит с веба, не с локального компа), возвращает ссылку на картинку.

function UploadImage($iurl){
 echo date("r")." fetching $url\r\n";
 echo date("r")." sending $postvars\r\n";
 $ch = curl_init();
 $postvars = "type=3&qnt=1&isurl=1&userimg1=$iurl&to_size_w=&to_size_h=&to_angle=0&pvs1=350&quality=100&pr_text=Увеличить&text=description=rules=on&submit_button=Загрузить";
curl_setopt($ch, CURLOPT_POST      ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS    , $postvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION  ,1);
curl_setopt($ch, CURLOPT_HEADER      ,1);
curl_setopt($ch, CURLOPT_TIMEOUT,15);
//    curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_COOKIEJAR, "c1.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "c1.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, "http://imageshost.ru/upload.php");
curl_setopt($ch, CURLOPT_USERAGENT, "Firefox/3.0");
$result = curl_exec($ch);
curl_close($ch);
preg_match("!img=(.*?)\]!i", $result, $out);
$result = $out[0];
return $result;
}
css.php