PHP: простая файловая шара (upload, download, delete, open)

DOWNLOAD/OPEN

При генерации файла обязательно делаем скобки вокруг “file_name”, иначе в случае если в имени файла есть пробел firefox будет показывать только первое слово, хотя другие браузеры этим страдать не будут. Mozilla давно сказала, что исправлять это не будет т.к. такое поведение соответствует RFC.

Читать дальше

Ruby: работа с Excel (xls) и CSV с гемами spreadsheet, axlsx

В целом про csv/excel тут.

Для работы с CSV достаточно системной библиотеки CSV.

 

CSV

Работа с CSV

# открываем файл, каждая строка является массивом, каждая ячейкам – элементом массива

csv.foreach("csv.csv") do |line|
puts line.inspect
end

# если нам нужно сохранить весь файл в двумерный массив (array, в нем строки в виде отдельных array) – просто вызываем read.

Читать дальше

phantomjs – парсинг web с поддержкой js

    • (macbook, phamtomjs) На macook и ios можно запускать shortcuts, там писать код (ниже пример с выгрузкой страницы html с запуском js!) и автоматизировать запуск (на ios через сами shortcuts, на macbook через cron/shorty)
    crontsb -l
    */2 * * * * /Users/rpv/lesta_shortcut.sh


Читать дальше

Несколько полезных JavaScript

confirm при нажатии на кнопку

Например кнопку “удалить” в файловой шаре.

echo "<td><button type=submit name=file_dlt value=\"$file\" onclick=\"return confirm('Вы уверены?')\">Удалить</button></td>";
Добавление строки в таблицу по OnClick

Стырено отсюда. Причем штука настолько крутая, что копирует весь html от строки родителя – значения полей (в моем кейсе хорошо), checkbox, связанные.

Читать дальше

PHP библиотека PHPExcel для работы с Excel

Для работы с Excel использовал библиотеку PHPExcel. Установка простейшая – кладем папку Classes в нужную папку на сервере, указываем корректные пути в include/require.

Примеры кода по чтению/генерации файлов Excel можно посмотреть на github странице библиотеки.

 

Красивости

и этим не ограничивается функционал, это лишь то, что использовал:

  • mergeCells(“cell_range”) – Объединение указанных ячеек в одну.


Читать дальше

Excel: использование функции ВПР

Общее

В Excel есть полезная функция – ВПР. Позволяет на основе списка неких идентификаторов извлечь из таблицы значения атрибутов этих идентификаторов.

Сравнение ВПР с другими вариантами решения задачи:

  • ВПР – подходит для небольших объемов данных. По опыту попытка получения данных по 100к значениям в таблице из 300к строк требовала неимоверное время для расчета и в результате пришлось решать задачу по-другому. 


Читать дальше

Ruby: парсинг и модификация WEB страниц с Nokogiri и Mechanize

Парсить страницу через curl + regexp можно, но только в простых сценариях. В противном случае проще и надежнее использовать библиотеки.

Mechanize и Nokogiri похожи. Насколько я понимаю Mechanize использует Nokogiri для своей работы. Оба Gem могут использовать html объекты для парсинга/манипуляции (nokogiri так же может работать с xml).

Читать дальше

Microsoft Word разное (стили и глюки, память на диске и temp)

Повторное использование одной и той же сноски
Повторное использование одной и той же сноски достигается за счет перекрестной ссылки.
word вписать таблицу в страницу по ширине

Очень часто возникает задача вставить таблицу в документ Word из внешнего источника (WEB/Excel). При такой вставке границы таблицы могут заходить за пределы листка.

Читать дальше

HP LoadRunner, IBM RPT

HP LoadRunner – утилита для нагрузочного (и не только, по аналогии с JMeter) тестрования. С помощью нее можно создавать разные запросы на сайт/приложение/БД и анализировать отдачу. Можно писать скрипты. Бесплатная лицензия на 50 пользователей.

Как понимаю прямой конкурент:

IBM RPT – Rational Performance Tester.

Читать дальше

PHP работа с MySQL используя PDO

В коде страницы выглядит так. Используются функция в файле mysql_con.php и класс с несколькими функциями в файле mysql_oper.php.
require __DIR__ . 'mysql_con.php';
$db = DB();
require __DIR__ . 'mysql_oper.php';
$app = new TestClass($db);
$res = $app->Funname($username);
mysql_con.php – создаем коннект к BD.


Читать дальше