PHP и с чем его едят....

Firewall

Мой повелитель utz0r2
сайты визитки типа вконтакта, фейсбука и википедии
 

PainKiller

Пастафарианец
Команда форума
Супер Модератор
И вот еще, кстати, facebook.
 

PainKiller

Пастафарианец
Команда форума
Супер Модератор
Статистика hh.ru
PHP - Найдено 678 вакансий
Perl - Найдено 229 вакансий
Java - Найдено 835 вакансий

И небольшое поэтическое отклонение
JavaScript. Сильные стороны (Дуглас Крокфорд)



А я говорил, что имею что-то против js?
JS вполне себе норм, а вот node.js - гадость и не нужен.
Одна из причин - stop the world сборщик мусора. Т. е. не все, что хорошо для клиентской части есть хорошо для серверной.
В том сегменте, где я работаю, php не нужен, да и оно к лучшему.

Дальше, про ускорение интерпретаторов. Это именно то, что я говорил. Если начинать дискуссию с того "вики, контакт, фейсбук написано на php", то следующим аргументом не должно быть "переписали интерпретатор", это только подтверждает ублюдочность языка, стандартного интерпретатора и верность моих суждений касательно его.

Еще, если посмотреть на фейсбук, они сделали очень правильно, вынеся чат на эрланг, это его ниша.

И еще, любой язык должен быть удобным, предсказуемым.

Еще раз. Для задачи нужно выбирать инструменты, а не говнякать исключительно на том, на чем умеешь.

И еще есть нюанс, не знаю, почему так сложилось, но 90% php программистов ни разу не программисты.
И, увы, найти хорошую высокооплачиваемую работу со знанием php исключительно очень тяжело.
 

PainKiller

Пастафарианец
Команда форума
Супер Модератор
И вот по поводу node.js, ее пытаются сравнивать с erlang.
Не надо этого делать.

А по поводу опыта, как-то раз ко мне в руки попал проект, написанный на php и node.js, который писало довольно много людей. А в руки ко мне он попал потому, что не смогли провести PCI-DSS сертификацию первого ранга. Мы с командой перепилили его практически под ноль, PCI-DSS пройден.

Бесспорно, php тут ни при чем.
 

Dio

Из других жизней
Доброе врем суток!
столкнулся с, казалось, простым вопросом но почему-то не решаеться он как нужно...

В общем нужно было чтобы по концу адресной строки происходила определение юзера и перекидывалось на его страницу. Сделал функцию на php - с ней все в порядке.
Например:

Но вот с .htaccess несовсем:
В .htaccess написал:

Options +FollowSymlinks
RewriteEngine On
# Если не файл
RewriteCond %{REQUEST_FILENAME} !-f
# Если не директория
RewriteCond %{REQUEST_FILENAME} !-d
# Запускаем index.php
RewriteCond %{HTTP_USER_AGENT} Firefox
RewriteRule (.*) index.php

И все работает чудесно!!! Но в мозилле не подтягиваются вообще не стили не картинки НИЧЕГО что имеет относительный путь... Это очень напрягает..
Кто - нибудь сталкивался с такой проблемой? Как ее можно решить не переписывавший кучу кода с указанием прямых путей?

Благодарю! :)
 
Последнее редактирование:

PainKiller

Пастафарианец
Команда форума
Супер Модератор
Доброе врем суток!
столкнулся с, казалось, простым вопросом но почему-то не решаеться он как нужно...

В общем нужно было чтобы по концу адресной строки происходила определение юзера и перекидывалось на его страницу. Сделал функцию на php - с ней все в порядке.
Например:

Но вот с .htaccess несовсем:
В .htaccess написал:

Options +FollowSymlinks
RewriteEngine On
# Если не файл
RewriteCond %{REQUEST_FILENAME} !-f
# Если не директория
RewriteCond %{REQUEST_FILENAME} !-d
# Запускаем index.php
RewriteCond %{HTTP_USER_AGENT} Firefox
RewriteRule (.*) index.php

И все работает чудесно!!! Но в мозилле не подтягиваются вообще не стили не картинки НИЧЕГО что имеет относительный путь... Это очень напрягает..
Кто - нибудь сталкивался с такой проблемой? Как ее можно решить не переписывавший кучу кода с указанием прямых путей?

Благодарю! :)
Добавить:
Код:
RewriteBase /
И еще было бы неплохо показать кусок кода страницы с подобными путями, которые не работают в firefox.
 

kamerad

Well-Known Member
Добавить:
Код:
RewriteBase /
И еще было бы неплохо показать кусок кода страницы с подобными путями, которые не работают в firefox.
оффтоп, но вы сектанты и отщепенцы т.к. осеняя себя надо говорить не рамень, не раминь, а мивинь!
 

Moxa

New Member
Всем привет.
Задача - периодическая репликация папок, т.е. копирование только измененного или нового содержимого. Рабочий php скрипт копирования:

<?php function dircpy($source, $dest, $overwrite = false){
if(!is_dir($dest))
mkdir($dest);
if($handle = opendir($source)){
while(false !== ($file = readdir($handle))){
if($file != '.' && $file != '..'){
$path = $source . '/' . $file;
if(is_file($path)){
if(!is_file($dest . '/' . $file) || $overwrite)
if(!@copy($path, $dest . '/' . $file)){
echo '<font color="red">File ('.$path.') could not be copied, likely a permissions

problem.</font>';
}
} elseif(is_dir($path)){
if(!is_dir($dest . '/' . $file))
mkdir($dest . '/' . $file); // make subdirectory before subdirectory is copied
dircpy($path, $dest . '/' . $file, $overwrite); //recurse!
}
}
}
closedir($handle);
}
}


$zz="D:\JAVA\-from" ;
$zx="L:\-to" ;
dircpy($zz, $zx, $overwrite = false);

?>

проблема в том, что при вызове функции с параметром
$overwrite = false - во время копировании игнорируются измененные файлы с тем же допустим именем, а при
$overwrite = true - то копируется с перезаписью естественно тотально всё содержимое, в том числе уже имеющееся в целевой папке; папка огромна и длительный проход колоссального ненужного трафика - неприемлем.

Спасибо.
 

Kadiz

Active Member
Добавьте дополнительные условия
if(!is_file($dest . '/' . $file) || $overwrite)
То что вы хотите похоже на ( )?
 
Последнее редактирование:

Moxa

New Member
Добавьте дополнительные условия

То что вы хотите похоже на ( )?
Может быть нужно создавать массив, куда передавать файлы, с датой создания отличных от уже имеющихся в папке-приемнике, и потом их уже и копировать с режимом overwrite ?
Первые шаги в php.

Спасибо.
 

Kadiz

Active Member
Алгоритм

Утилита rsync использует алгоритм, разработанный австралийским программистом Эндрю Триджеллом, для эффективной передачи структур (например, файлов) по коммуникационным соединениям в том случае, когда принимающий компьютер уже имеет отличающуюся версию этой структуры.

Принимающий компьютер разделяет свою копию файла на неперекрывающиеся куски фиксированного размера S, и вычисляет контрольную сумму для каждого куска: MD4-хеш и более слабый кольцевой хэш, и отправляет их серверу, с которым синхронизируется.

Сервер, с которым синхронизируются, вычисляет контрольные суммы для каждого кусочка размера S в своей версии файла, в том числе перекрывающиеся куски. Вычисления производятся эффективно ввиду особого свойства кольцевого хэша: если кольцевой хэш байт от n до n + S − 1 равняется R, то кольцевой хэш байт от n + 1 до n + S может быть посчитан исходя из R, байта n и байта n + S без необходимости учитывать байты, лежащие внутри этого интервала. Таким образом, если уже подсчитан кольцевой хэш байт 1—25, то для подсчета кольцевого хэша байт 2—26 используется предыдущее значение и байты 1 и 26.


(A simple PHP rsync wrapper library)
 
Последнее редактирование:

Moxa

New Member
Алгоритм

Утилита rsync использует алгоритм, разработанный австралийским программистом Эндрю Триджеллом, для эффективной передачи структур (например, файлов) по коммуникационным соединениям в том случае, когда принимающий компьютер уже имеет отличающуюся версию этой структуры.
Здоровская программка, спасибо, но речь идет именно о модернизации предложенного выше php скрипта.

Дело в том, что уже есть ряд работающих php-скриптов, выполняющих однотипные задачи, поэтому плодить дополнительно для этого же еще и батники или сторонний софт - не комильфо, хотя идея хороша.
 

Michael

Well-Known Member
Команда форума
Администратор
Здоровская программка, спасибо, но речь идет именно о модернизации предложенного выше php скрипта.

Дело в том, что уже есть ряд работающих php-скриптов, выполняющих однотипные задачи, поэтому плодить дополнительно для этого же еще и батники или сторонний софт - не комильфо, хотя идея хороша.
ну так модернизируйте используя для этого нормальный подход (например ), не нужно изобретать колесо снова
 
Верх