Ответы пользователя по тегу PHP
  • Как передать объект по ссылке?

    @tushev
    В PHP4 объекты передавались по значению и чтобы передать их по ссылке надо было ставить &.
    В современном PHP все объекты передаются по ссылке, так что & использовать для объектов бессмысленно.
    & есть смысл использовать только для прочих типов данных, типа чисел, строк, массивов....
    Ответ написан
    Комментировать
  • Как создать dbf файл в php?

    @tushev
    Сделайте кнопку не type="button", а type="submit". Тогда форма будет сабмитится в скрипт createdbf.php
    Ответ написан
    Комментировать
  • Правильно ли я делаю запрос SQL с помощью mysqli ?

    @tushev
    Так mysqli_fetch_assoc() извлекает только один ряд, а не всю выборку! Если хотите получить всю выборку - надо крутить вызов mysqli_fetch_assoc в цикле. Типа того
    while ($row = $result->fetch_assoc()) {
       ....
    }
    А вы извлекаете один ряд, а потом пытаетесь крутить по нему цикл, думая что крутите его по записям, а на самом деле, цикл у вас крутиться по полям одной первой записи.
    Ответ написан
  • Почему не работает сайт, после смены PHP с 5.2 на 5.3?

    @tushev
    Переход с PHP 5.2 на 5.3 почти всегда сопровождался проблемами. Слишком сильные изменения были сделаны между этими версиями. Не помню, чтобы переходы между другими версиями были бы на столько же проблемными.
    В ряде случаев проблемы возникали из за того, что 5.3 более требователен к корректности кода, и поэтому сыплет варнингами и предупреждениями. Иногда проблемы более глубокие.
    Ответ написан
    Комментировать
  • Что интереснее, программирование БД или web-программирование?

    @tushev
    Работа с БД обычно сводится к добавлению и выборке записей из табличек. Здесь тоже есть много нюансов, тонкостей, приемов. Но заниматься только этим, на мой взгляд - скучновато.
    При разработке сайтов на Битриксе вы освоите PHP, HTML+CSS и JavaScript. Дальше сможете развивать эти знания по отдельности или вместе. У вас появиться много возможных путей развития. Хотя сам Битрикс - я терпеть не могу.
    Ответ написан
  • Существует ли альтернатива Denwer для windows?

    @tushev
    А еще можно на виндах поднять виртуалку с Linux на котором будет стоять apache, nginx, php, nginx, mysql, postresql, mongodb... ну и все что вам захочится.
    Ответ написан
    2 комментария
  • Как сделать экспорт большой таблицы в Excel средствами PHP?

    @tushev
    Действительно PHPExcel для больших объемов данных не подходит.

    Как решение, формируйте эксель данные в формате ODF, можно с расширением XLS. Это открытый XML формат, эксель его понимает. Формировать эти данные можно обычным print-ами, память и ресурсы при этом расходоваться не будут.
    Самый простой способ пронять структуру ODF-файла, это сохранять данные из Экселя в формате ODF/XML и посмотреть как они устроены. Потом просто воспроизведите эту структуру на PHP.

    Самое тупое но простое решение, сделать выгрузку в формате HTML содержащий одну таблицу, и дать ему расширение xls. Эксель такое переварит при открытии.
    Ответ написан
    Комментировать
  • PHP - как забрать контент с веб-сервера в локальной сети?

    @tushev
    Сначала убедитесь, что file_get_contents вообще в состоянии забирать данные хоть с какого нибудь адреса. Потом разберитесь, почему не получается забрать с 192.168.1.38/mypage.

    Возможно есть файрволы между php и 192.168.1.38. Попробуйте считать данные не через php, а через какую нибудь утилиту командной строки со стороны php.

    Возможно на той стороне проверяются заголовки запроса. Запихайте кроме user-agent вообще все остальные заголовки браузера (перехватите их чтобы понять какие они там есть).
    Ответ написан
  • Какую ОС лучше использовать для веб-программиста?

    @tushev
    Удобно использовать такую же ОС как та, на которой будет исполняться ваши проекты.
    Но при этом, в этой ОС вам может не хватать чего то нужного, поэтому удобно дополнительно иметь вспомогательную ОС в виде виртуальной машины.

    Мой вариант:
    Linux Ubuntu - Ибо такая же стоит на серверах где работают мои проекты.
    Виртуальная Windows - Для запуска Internet Explorer и прочих виндяшных радостей, которым нет нормальной замены на Linux
    Ответ написан
    Комментировать
  • MYSQL Insert - импорт json файла с большим количеством данных - как?

    @tushev
    При массовой вставке или апдейте записей в MySQL очень сильное ускорение можно получить если завернуть пачку INSERT-ов или UPDATE-ов в транзакцию. Можно вообще вообще весь импорт сделать за одну транзакцию, можно разрезать на несколько более мелких транзакций.

    Ну а вообще, разберитесь в каком месте у вас все падает или жрет слишком много времени и ресурсов. Разбейте задачу на несколько кусков, и выполните каждую по отдельности.
    - чтение данных из удаленного источника
    - json парсинг
    - формирование SQL команд
    - выполнение SQL команд

    Тогда поймете, в каком именно месте у вас проблема.
    Ответ написан
  • Дозапись в Excel PHP?

    @tushev
    Ну считываете в память эксельный файл через phptoexcel. Смотрите на какой строке данные заканчиваются. И после этой строки добавляете новые данные. Потом сохраняете файл. В чем сложность?

    Но я бы лучше данные хранил в БД. И дозапись данных делал бы в БД. А потом бы делал выборку из этой БД и формировал новый эксельный файл с нуля. Меньше граблей будет со всякими блокировками и структурами эксельных файлов.
    Ответ написан
  • Что делать, если заказчик не желает платить за услугу?

    @tushev
    Судя по их поведению, им этот сайт не очень то и нужен. А вот деньги вам, я полагаю как раз нужны. Если вы удалите сайт, то они обидятся, повозмущаются и плюнут на все это. Так что метод взятия сайта в заложники и последующего шантажа врядли сработает.

    Я бы предложил сначала им отправить отправить грамотно составленную досудебную претензию в бумажном виде. (Образцы найдете в интернете) Это покажет вашу серьезность, юридическую грамотность (даже если ее нет :-), и то что вы готовы отстаивать свои права в правовом поле, а не просто ныть. Часто после получения такой бумажки клиенты все выплачивают и до суда дело не доходит.

    Ну а при дальнейшем игноре подавайте в суд. Это не так уж и сложно как кажется.
    Ответ написан
    2 комментария
  • Как русифицировать aptana studio 3?

    @tushev
    Программисту лучше выучить английский, иначе его жизнь будет полна тягот и страданий. (Если это только не программист 1С)
    Чтение пунктов меню на английском, это тоже маленький, но нужный шажок в изучении языка.
    Ответ написан
    Комментировать
  • PHP while последний элемент

    @tushev
    Если вы пытаетесь сделать вывод в формате JSON, то может быть лучше сначала запихать выборку из БД в массив-таблицу, а потом вывести все через json_encode().
    Ответ написан
    1 комментарий
  • Какой есть короткий способ преобразования ,1,2,3, в 1|2|3

    @tushev
    Через trim($str, ",") отрезать концевые запятые, а потом через str_replace заменить "," на "|".

    А если по умному и с проверками корректности исходной строки, то через preg_replace
    Ответ написан
    1 комментарий
  • Как реализовать сообщение об ошибке после редиректа?

    @tushev
    Я обычно пользуюсь следующими вариантами:
    1. Flash messages - написали выше, действительно многие php фреймворки так и делают.
    2. Отказываюсь от редиректов, так чтобы можно было вывести и сообщение об ошибке и результат обработки на той же странице, где и происходит действие. Да, это потребует изменение путей пользователя на сайте.
    3. Использую AJAX. Это решает сразу кучу проблем. Легко выводить сообщения об ошибках, делать серверную валидацию не теряя содержимого форм, отсутствие сдвигов скролинга страницы, меньше надо думать о пути пользователя по сайту во время обработки действий связанных с изменением данных и т.д.
    Ответ написан
    Комментировать
  • Парсинг XLS средствами PHP

    @tushev
    Еще документ Excel можно сохранить в каком нибудь XML-ном формате. Например в ODF-подобном (OpenOffice его также использует). При этом, в отличие от CSV, вы не потеряете листы, форматирование, формулы и т.д. Эта фича вроде бы во всех совеременных версиях Экселя присутствует по умолчанию. Дальше можете парсить такой файл на PHP через XML парсер, например SimpleXML.

    Я так делал, потому что парсинг нативного Эксель формата на PHPExcel требовал оооочень много машинного времени и RAM. А описанный мной способ потребляет мало ресурсов и работает быстро.

    P.S.: Пугаться ручного парсинга ODF XML-ки не стоит. Разобраться на уровне достаточном для чтения листов и значений можно за пол часа, даже без документации. Там все очевидно.
    Ответ написан
    Комментировать