• POST запрос

    m00t
    @m00t
    Давайте я погуглю за вас
    С сервера.
    Питон:
    # --------- upload_file.py ----------------
    # upload binary file with pycurl by http post
    c = pycurl.Curl()
    c.setopt(c.POST, 1)
    c.setopt(c.URL, "http://<кудахотитеслать>")
    c.setopt(c.HTTPPOST, [("file1", (c.FORM_FILE, "c:\\tmp\\download\\test.jpg"))])
    #c.setopt(c.VERBOSE, 1)
    c.perform()
    c.close()
    print "that's it ;)"
    


    РЫНЫРЫ:
    <?php
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_VERBOSE, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
        curl_setopt($ch, CURLOPT_URL, 'http://<кудатамнадо>');
        curl_setopt($ch, CURLOPT_POST, true);
        // same as <input type="file" name="file_box">
        $post = array(
            "file_box"=>"@/path/to/myfile.jpg",
        );
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
        $response = curl_exec($ch);
    
    Ответ написан
    Комментировать
  • Источники информации по MySQL

    m00t
    @m00t
    Так…
    Добавлю еще к предыдущим:

    Хотите научиться писать сложные запросы?
    sql-ex.ru

    Хотите понять как правильно составлять эффективные запросы?
    www.mysqlperformanceblog.com/
    oz.by/books/more10132838.html
    Ответ написан
    Комментировать
  • SQL запрос, как?

    m00t
    @m00t
    Вариант 1 — в лоб. Формально работает правильно (в оличие от первых двух ответов), но некрасиво:
    SELECT * FROM test t1
    WHERE
    t1.is_main = (
    SELECT MAX(is_main) FROM test t2 WHERE t2.parent_id = t1.parent_id
    )
    OR NOT EXISTS(SELECT * FROM test t2 WHERE t2.parent_id = t1.parent_id AND t2.is_main IS NOT NULL)
    GROUP BY t1.parent_id
    Ответ написан
  • Какими программами для администрирования баз данных Вы пользуетесь?

    m00t
    @m00t
    1) Загрузка/выгрузка дампов — консоль
    2) Редактирование схемы/отладка запросов — MySQL Workbench
    3) phpMyAdmin — ненавижу )

    По MySQL Workbench отдельная история. Под Линукс он почему-то глючный у меня сильно. Поэтому после переезда на убунту все чаще схему БД правлю прямо в Eclipse в .sql файликах руками (ALTER TABLE.....) — получается даже быстрее и удобнее, чем клацать мышкой по окошкам. Да и полезнее, я надеюсь )
    Ответ написан
    Комментировать
  • Modrewrite - статья для новичков?

    m00t
    @m00t
    Я считаю, что правила вида

    RewriteRule ^(user\-)([0-9]+)$ /user.php?id=$2 [L]

    как вам подсказали в комментарии выше, хоть и являются верными для данной задачи, но в последствии приводят к сильному разрастанию .htaccess при росте сайта — вы потом захотите сделать не только такие урлы для пользователей, но и для каталога, и для статей что-то типа «articles/title.html». Несколько более общий принцип создания красивых ЧПУ описан в моем комментарии тут habrahabr.ru/qa/1488/#answer_6155
    Ответ написан
    Комментировать
  • Внимание! Пополняя счёт в Skype c WebMoney, вы рискуете выбросить деньги на ветер. Кто виноват и что делать?

    m00t
    @m00t
    Накатайте жалобу в арбитраж с подробным описанием того, что случилось. Не помню, как это называется… Претензии вроде, отзывы — те, что видны всем участниками при платеже.
    Ответ написан
    Комментировать
  • Задание дополнительного аругмента для ant или phing

    m00t
    @m00t
    Можно phing-у передать параметры через -D. Не очень красиво выглядит — зато без костылей ИМХО
    	<target name="test_env">
    		<echo>${environment}</echo>
    	</target>
    

    m00t@m00t:~/***$ phing test_env -Denvironment=test1
    Buildfile: ****/build.xml
    
    **** > test_env:
    
         [echo] test1
    
    BUILD FINISHED
    
    Total time: 0.0969 seconds
    
    Ответ написан
    2 комментария
  • Как узнать стандартными средствами PHP, требуются ли аргументы для вызова метода?

    m00t
    @m00t
    php.net/manual/en/book.reflection.php
    function test_function($param1, $param2 = NULL)
    {
    	echo $param1;
    }
    
    $ref_function = new ReflectionFunction('test_function');
    
    foreach($ref_function->getParameters() as $param)
    {
    	var_dump($param->isOptional());
    }
    
    var_dump($ref_function->getNumberOfRequiredParameters());
    

    выведет:
    bool(false)
    bool(true)
    int(1)
    Ответ написан
    1 комментарий
  • Почему Хабр не даёт плюсануть карму когда написано «У вас осталось 4 голоса за карму, топики, вопросы...»?

    m00t
    @m00t
    Тоже заметил такую штуку, когда карма была ровно 5. Наверное, где-то разработчики перепутали ">" и ">=" )
    Ответ написан
    2 комментария
  • Как правильно настроить mod_rewrite?

    m00t
    @m00t
    Я бы на вашем месте сделал по-другому.
    Парсил бы строку URI не в htaccess, а в index.php. А все запросы к несуществующим файлам передавал бы неизменными на index.php. Так делают во всех фреймворках сейчас. Тогда и _GET параметры все останутся, если надо. Пример htaccess (смотрите на последние три условия):
    github.com/kohana/kohana/blob/3.0.x/example.htaccess
    Потом его можно узнать в скрипте примерно так:
    github.com/kohana/core/blob/3.0.x/classes/kohana/request.php#L239
    и распарсить уже как надо на свои query, id и microid.
    Ответ написан
    Комментировать
  • Чем фрилансить?

    m00t
    @m00t
    Не слушайте тех, кто говорит, что на фрилансе нечего делать без опыта. Я начинал с нуля еще школьником когда-то. Конечно, писал PHP/Perl быдлокод. Заказчиков, которым нужен именно дешевый исполнитель, и при том не нужно супер качество — полно. Книжки по PHP любые — только не «за 24 часа, для чайников и пр.». Котерова почитайте, если неплохо с английским — Zend PHP Certification Guide тоже полистайте — грамотные мыли там иногда можно прочитать как делать, а как не стоит. Это я про русский фриланс — на англоязычных не знаю что там с веб-разработкой. Думается мне, что с индусами не очень-то потягаешься в плане быдловебразработки.
    Еще вариант — товарищ пошел на зарубежную биржу на 2 курсе на С++. Что изучал — не знаю.
    Я читал книжку «PHP для хакеров» в свое время. Такая тоненькая книжечка, в которой рассказывалось про SQL-инжекшены, ПХП-инклюдинги и пр. Показывались примеры кода, рассказывалось как не надо делать — очень хорошо мне мозги вправило на первых порах. А всякие Рефакторинги, Дизайн Паттернс — это не те книжки, которые надо читать студенту без опыта коммерческой разработки ИМХО. И уж тем более не те книжки, которые помогут вам успешно начать работать на фрилансе.
    Ответ написан
    Комментировать
  • SMS уведомления

    m00t
    @m00t
    Прикручивали как-то этот сервис к сайту: yakoon.com/
    По стоимости около 2 центов за SMS (вроде как 2-3WMZ за 100 заплатил для теста).
    Там у них API для отсылки + программка на «побаловаться» десктопная доступна.
    Очень порадовала возможность (не знаю, как у других сервисов с этим делом) указать своего отправителя.
    Ответ написан
    3 комментария
  • Округление в PHP

    m00t
    @m00t
    Насколько я понимаю, на пальцах такое поведение можно объяснить тем, что 0.1 не представляется в двоичной системе как конечная дробь, а поэтому обрезается при переводе.
    Ответ написан
    Комментировать
  • Алгоритм определения визуально скрытых HTMLDom элементов?

    m00t
    @m00t
    Если не ломает запускать на сервере полноценный браузер — посмотрите в сторону Selenium. Имели опыт написания парсеров/грабберов на нем — есть API для практически любого языка (сами на PHP писали).
    Коротко о нем: запускается браузер, и работа ведется непосредственно с уже отрендеренной в браузере страницей. Так что обрабатываются и css, и $('#element').hide() всякие.
    Плюс запуск «на поиграться посмотреть» достаточно прост, что не маловажно.
    Ответ написан
    Комментировать
  • Можно ли использовать бесплатный базовый пакет от Google для маленькой компании?

    m00t
    @m00t
    Смотря что вам надо для компании. У нас небольшая компания 10-15 человек (веб-студия). Хватает базового пакета.
    — имя@domain.com — почта, jabber
    — Гугль докс внутренние — всякие планы и отчеты.
    Ответ написан
    1 комментарий