wdsg

wdsg
Рейтинг
31
Регистрация
09.02.2009

Маленький, но гордый офф: Вы свой сайтик в FF видели?

Без относительно подробного ТЗ рассчитать стоимость разработки не представляется возможным. Например, совершенно непонятно что могут представлять из себя лоты. Это контент (как сейчас модно называть, "цифровые товары") или абсолютно всё что угодно? Я это к тому, что можно просто зафиксировать обмен и погасить лоты, а можно реализовать хранение контента пользователей и, соответственно, его передачу при совершении обмена, что подразумевает совершенно другой объём работ.

bahus:
Есть форма на сайте (текстареа, сабмит), которая после выполнения в определенном div выдает определенный текст.

Вопрос такой - возможно ли с сайта A, где есть текст в переменной, передать сайту Б (где стоит форма) этот текст (думаю возможно, get'ом), выполнить эту форму и вернуть на сайт А, то, что выдала форма Б?

Другими словами, речь идёт о парсинге выдачи с постороннего ресурса. Каким методом форма сабмитится сообщите, пожалуйста?

Деймос:
Подскажите как сделать кеширование картинок, т.е. я загружаю на свой сайт скриншеты сайтов через:
<img src="http://open.thumbshots.org/image.pxf?url=http://site.ru">


Дак вот как их закешировать чтобы каждый раз не обращаться к серверу thumbshots, а например загружать рисунок из папки /cache-pic/.

Всем заранее спасибо!

Давайте попробуем сделать так:

Создаём файл, например thumb.php, в него помещаем

error_reporting(0);
if (!isset($_GET['url'])) {
// Делаем что-то если в запросе нет url, например отдаём тумбу-заглушку
}
$Cache = new THCache;
$Image = $Cache->get($_GET['url']);
header('Content-type: image/jpeg');
echo $Image;

final class THCache {
const CACHE_PATH = '/srv/www/htdocs/cache/'; // Это локальный путь кеша
public function get($URL) {
$Sign = md5($URL);
if (!file_exists(self::CACHE_PATH.$Sign)) { // Если в кеше ещё нет тумбы для данного $URL, генерим новый элемент кеша
$this->cache($URL);
}
return file_get_contents(self::CACHE_PATH.$Sign); // Возвращаем содержимое тумбы
}
private function cache($URL) {
$Img = file_get_contents('http://open.thumbshots.org/image.pxf?url='.$URL); // Получаем тумбу от thumbshots.org
// Пишем её в локальный кеш
$FH = fopen(self::CACHE_PATH.md5($URL), 'w');
flock($FH, LOCK_EX);
fwrite ($FH, $Img);
flock($FH, LOCK_UN);
fclose($FH);
}
}

Все обращения, вроде

<img src="http://open.thumbshots.org/image.pxf?url=http://site.ru">

меняем на

<img src="http://mysite.ru/thumb.php?url=http://site.ru">

Сразу оговорюсь, что возникнет несколько мелких проблем. Например, если тумбы для определённого URL у thumbshots.org нет, то он, если мне не изменяет память, возвращает пустой png. Кроме того, тумбы для http://site.ru и site.ru будут разные (два разных файла в кеше). Необходимо проверять URL-адрес на "http://" в начале и "/" в конце. В общем, каркас есть, допиливание уже за Вами.

shav:
Знаниями регулярок не отличаюсь, поэтому помогите:
Есть запись: Xxxxx, yyyy, Zzzzzz
Нужно после запятой перед Заглавной (только перед Заглавной) буквой вставить "QQQQ"
Язык реализации лучше Perl или php.

Вот так должно работать:


$Text = preg_replace('|,\s([A-ZА-Я])|', ', QQQQQ$1', $Text);
hasimyra:
Хорошие ссылки. Спасибо помогли.
Подскажите а как реализовать чуть иначе. Ведь если в корне сайта будет оч много папок имхо это не есть гуд. Например если сделать папку users_domains и туда все папки переместить..
Алгоритм остается тот же что и в приведенных ссылках только апач подкрутить? или так не получится реализовать?


<VirtualHost *:80>
DocumentRoot [путь к докруту]
ServerName site.ru


ServerAlias *.site.ru
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.site\.ru$
RewriteCond %{HTTP_HOST} ^((.*)\.)site\.ru$
RewriteRule ^/(.*) /users_domains/%2/$1
</VirtualHost>

Потёр. Невнимательный я какой :)

ТС, вываливайте структуру evo_blogs.

Примерно так это может выглядеть:


$Data = array(
'01.01' => 'Новый Год!',
'23.02' => '23 февраля',
'08.03' => '8 марта',
'01.04' => '1 апреля'
);

$Rec = false;
$Pos = 0;
$Result = '';
$Time = time();
$Year = date('Y', $Time);
reset($Data);
while ($Curr = current($Data) and $Pos < 3) {
if (strtotime(key($Data).'.'.$Year) >= $Time) {
$Rec = true;
}
if ($Rec) {
$Result .= key($Data).'.'.$Year.' - '.$Curr.'<br/>';
$Pos++;
}
if (!next($Data)) {
reset($Data);
$Year++;
}
}

Не проверял, т.к. пишу со смарта. Проверяйте, оптимизируйте, оборачивайте в модуль Joomla и готово.

P.S. Можно, видимо, даже без модуля (непосредственно в шаблон запихнуть).

Для каждого из доменов пишем в .htaccess:

RewriteCond %{ENV:REDIRECT_MYFLAG} ^$

RewriteCond %{HTTP_HOST} ^.*parcketsite1\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [E=MYFLAG:1]
RewriteRule ^.*parcketsite1\.com(.*) /parcketsite1%{REQUEST_URI} [L]
Angelys:
Добрый день. Подскажите как сконвертировать виртуалхост апача в виртуалхост nginx. Планирую сделать nginx на 80 порт а апач на 8080 .... использую панель Lxadmin. Заранее спс ... в Lxadmin есть lighttp но там не работает ЧПУ .htaccess . Заранее спасибо за ответ)

Первым делом, давайте определимся, как будем использовать nginx. Учитывая "nginx на 80 порт а апач на 8080", речь, видимо, идёт об использовании nginx в качестве фронтенда к apache. В таком случае, открываем nginx.conf и там оформляем каждый виртуалхост apache примерно таким блоком:


server {
listen [IP_сервера]:80;
server_name site.ru site_miror.ru;

access_log [путь до acces-логов];
error_log [путьдо error-логов info];

location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

root [путь в докрут виртуального сервера apache];
}

Также неимоверно доставляет организация прямой выдачи статики в обход apache. Для этого в каждый из блоков server {...} добавляем:

	
location ~* \.([расширение1]|[расширение2]|...|[расширение n])$ {
root [путь в докрут виртуального сервера apache];
}

Вот, собственно, и всё. Nginx довольно легко конфигурируется.

Всего: 392