Sage
(капча появится по клику) Captcha image
Тема   (новый тред)
Текст
Файл 
Видео  
Пaроль  (для удаления постов и файлов)
К треду
  • Поддерживаемые типы файлов: GIF, JPG, PNG
  • Максимальный размер файла 2000 KB.
  • Изображения больше 200x200 будут уменьшены.
  • Сейчас 245 уникальных сообщений.
  • Информация для тех, кто хочет поддержать нульчан

Файл: 13273270559809.jpg - увеличить - (177.22KB, 1024x768)
1097 No. 1097 hide watch quickreply x     [Ответ]
Какой PHP фреймворк максимально похож на Rails?
Сейчас попробовал Yii, расстроился от того что перед созданием Model, нужно создавать таблицу руками.
Вообще, от фреймворка хочу вот что:
  • Миграции
  • Convenience over configuration
  • разделение среды хотя бы на development и production
И да, мой опыт почти что ограничивается одим руби и рельсами.
>> No. 1098 x  
>>1097
Symfony 2
>> No. 1099 x  
И правда ведь, спасибо няша.


Файл: 1326655275927.jpg - увеличить - (11.16KB, 302x334)
1088 No. 1088 hide watch quickreply x     [Ответ]
Привет Пыхач. Обьясни мне как к готовому PHP скрипту прикрутить Ajax функциональность? Конкретно нужна парсинг входных данных(сделано на ПХП) передача на расчёты и вывод, всё это на PHP. Хочу что бы парсинг и передача на расчёт происходили без перезагрузки страницы. Книга по jQuery у меня есть, jQuery для PHP тоже где то лежало, но я хочу что бы ты меня уберёг от самых распространённых ошибок.
inb4: модераторов и прочих с ораньжевой надписью сразу прошу выйти из ITT.
>> No. 1089 x  
Тебя читать научить чтоли?
­
Покажи пример своего кода.
>> No. 1090 x  
Отправляешь с помощью jQuery.post данные своему php-скрипту, который, после обработки данных вернёт тебе ответ в data.
На странице с формой (или что там у тебя):
$.post("handler.php", { var1: "value1", var2: "value2" },
  function(data){
    // здесь пропишешь что делать с ответом, например выведешь алертом
    alert(data);
  });
В handler.php, например:
...
if($_POST['var1'] == $_POST['var2']) {
  echo 'var1 = var2';
}
...
Только в handler.php нужно сделать проверку входных данных, естественно.
>> No. 1091 x  
>>1089
OK.
Вот кусок из парсинга
$Name = mysql_result($cursor,$j,"Name");
//$Id = mysql_result($cursor,$j,"Id");
$Id=$TeamID;
 
$adr_roster = 'http://www.xxxx.ru/xml/players/roster.php?id='.$Id.'&login=1&auth_name=' . $logname . '&auth_pass=' . $logpw;
@$roster = file_get_contents($adr_roster);
 
$players = explode('<a href=/players/', $roster);
Вот кусок из расчёта
  preg_match_all('%([0-9]{1,3}\.[0-9]{1,3})[</b>]?</td>%', $profile, $skills);
  preg_match_all('%<font color=["A-Za-z]*>([^<]*)</font></a>%', $profile, $pName);
  preg_match_all('%<td><b>(\d{2})</td></tr>%',$profile,$FAge);
  preg_match_all('%<b>([0-9]{1,6})</b>&nbsp;\(([0-9]{1,6})\)%', $profile, $expirience);
  preg_match_all('%<td><b>([0-9]{1})</td></tr>%', $profile, $base_talant);
  preg_match_all('%<b>([A-Za-z]{2,3}(/[A-Za-z]{2,3}){0,1}) %', $profile, $position);
Вывод тоже сделан без использования JavaScript.
>>1090
проблема в том что вывод от handler.php в твоём примере нельзя сразу вывести, нужны сложные относительно расчёты входных данных, они на PHP написаны.
>> No. 1092 x  
>>1091
Почему нельзя-то?!
Распиши-ка нормально, что тебе надо? От начала и до конца.
>> No. 1093 x  
Файл: 13268046568882.jpg - увеличить - (92.78KB, 555x675)
1093
>>1092
я тут вот что придумал, не зря я глицин пью всё таки.
Нужно front-end страницу делать на HTML/JS а back-end все парсинги и расчёты засунуть в php скрипт который будет только отвечать на запросы от JS страницы.


Файл: 13188141850889.jpg - увеличить - (175.13KB, 796x979)
1007 No. 1007 hide watch quickreply x     [Ответ]
Привет, пыхач! У меня не работает .htaccess в MODx, по ссылкам не проходит, постоянно перекидывает на главную.
rewrite_module включил, в .htaccess написано следующее:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /директория_modx
В опциях включил ЧПУ/friendly URLs.
>> No. 1008 x  
>RewriteBase /директория_modx
У меня просто
RewriteBase /
>> No. 1085 x  
Небось перенёс сайт, а пути не переписал.. или вложенные урлы включил.


Файл: 13252381572522.jpg - увеличить - (75.87KB, 387x500)
1083 No. 1083 hide watch quickreply x     [Ответ]
По нажатию на кнопку на сайте должен выполняться код пхп без перезагрузки страницы. Анон, умоляю, ты моя последняя надежда, гугл ничего вразумительного не дал. Ajax не знаю, наткнулся на совет с 204 No Content - но не знаю, как передавать заголовки.
Спасай, Анон!
>> No. 1084 x  
Джаваскриптом, блять, шлёшь запрос на сервер, получаешь ответ в формате XML, парсишь его, изменяешь содержимое страницы. Называется это модным словом AJAX.
>> No. 1087 x  
>>1083
БЛЯДЬ НУ ЧТО ТЫ ЗА МУДАК ТАКОЙ НА НУЛЕВОЙ ТРЕД ВИСИТ ПРЯМ ТАКОЙ ЖЕ
>>662


Файл: 13251674207171.jpg - увеличить - (16.97KB, 178x183)
1077 No. 1077 hide watch quickreply x     [Ответ]
Вот у меня есть одна таблица. Колонки в ней генерируются по результатам из базы. Таблица выглядит так: http://savepic.net/2247736.png
Из базы скрипт взял названия двух команд и кол-во раундов. Так вот, у меня возникла проблема. Дело в том что я не знаю как вывести результат на каждый раунд (результат тоже должен быть в базе и выводится вместе со всем). Прошу помощи у вас. Если надо, код кину.
Пик рандом.
>> No. 1078 x  
Пости код и набросай схему вывода данных в пэинте.
>> No. 1079 x  
if($_GET['id']) {
 
$idg = $_GET['id'];
 
echo('
<table border>
    <thead>
    <tr>
    <th>Команда</th>
');
 
$query = "SELECT * FROM commands WHERE idtour='$idg' ORDER by name ASC";
$result = mysql_query ($query);
 
$querys = "SELECT * FROM tournaments WHERE id='$idg'";
$results = mysql_query ($querys);
 
while ($rows = mysql_fetch_array($results)) {
$rr = $rows['rounds'];
}
 
$dds = $rr + 1;
 
for($d=1; $d<$dds; $d=$d+1) 
{
echo("
<th>Раунд $d</th>");
}
 
echo('
<th>Мячи</th>
<th>Очки</th>
</tr>
</thead>
');
 
while ($row = mysql_fetch_array($result)) {
echo('
<tr>
<td>'.$row['name'].'</td>
');
 
for($q=0; $q<$rr; $q=$q+1) 
{
echo('
<td>0:0</td>');
}
 
for($s=0; $s<1; $s=$s+1)
{
echo('<td>0</td>');
}
 
for($s=0; $s<1; $s=$s+1)
{
echo('<td>0</td>');
}
 
}
 
 
echo('
</table></center>');
 
}


Файл: 13164690822679.png - увеличить - (753.09KB, 536x775)
974 No. 974 hide watch quickreply x     [Ответ]
Судьба PHP-программиста.
>> No. 1067 x  
>>974
Full time и $15 per hour. Маловато но жить можно, думаю уйти в питон, он проще и понятнее, а платят в два раза больше.
>> No. 1071 x  
>>1067
>Full time и $15 per hour. Маловато но жить можно, думаю уйти в питон, он проще и понятнее, а платят в два раза больше.
Да ты жлоб! also На пистоне работы меньше, в отличие от php и c#. Да и вообще чтоб с пхп перейти на питон я лично потратил 2 недели.
$12/h работаю по 12-14 часов в день-мимо-проходил
>> No. 1073 x  
>>1071
>also На пистоне работы меньше, в отличие от php и c#
Да хуйня всё это, прошел тесты на odeske, теперь в 2% лучших пр php и javascript, работы хоть сракой жуй, постоянно чищу инбокс от заказов которые по цене не устраивают. Та-же хуйня с питоном, наработай хотя-бы 100-200 часов, пройди пару тестов, потом контрактеры сами тебя искать будут. Единственное что меня в моей ситуации выдрачивает это сам php, это говно тяжелее чем та-же ява. Ява сама заставляет тебя по стандартным патернам писать, и не дает говнокодить. А теперь возьми ZendFramework 2, где без знания тонкостей, ёбаной тучи, патернов проектирования, оптимизации, можно написать лишь говноприложение, в то время когда Java за тебя lazy load даже делает.
Другой вопрос что постоянная работа у меня на пыхе, и в моем городе не предвидится вакансий на питон с окладом выше $15p/h.
дико извиняюсь за маты и грамматику, это всё влияние ебучего пыха
>> No. 1074 x  
>>1073
Я бы чисто на javascript'е хуячил. Можно даже на новомодных нокаутах/бекбонях (благо опыт уже нихуёвый).
Не очень хочется делать бэк-энд, но в принципе могу писать без отвращения на python'е и ruby.
Чисто front-end'ом можно нормально заработать?
Есть одно но - я не хочу доделывать чужую работу и переписывать быдлокод ибо заебало уже.
phonegap и прочее мобильное говно трогать не хочу ибо тоже заебало. Java дрочить тоже нет желания. Чо скажешь?
>> No. 1075 x  
>>1074
>Чисто front-end'ом можно нормально заработать?
В 2006-2008 был крутой бум AJAX технологии, который задел ту компанию где я работал (одна из крупнейших в Северной Америке). Так у нас в честь этого началась работа над javascript фреймворком для RIA которые предоставляла наша компания. Так-же там была своя политика разработки, запрещающая использовать любые сторонние либы, даже фриверные вроде jQuery. Поэтому в своё время я потратил длительное время на написание довольно огромной JS либы которая решила бы два основных вопроса - скорость разработки и кроссбраузерность. Насколько я знаю в той компании до сих пор эта либа частично используется.
На новом месте я уговорил партнеров перейти на RIA, и потратил два месяца на разработку своего фреймворка для клиентской части. Как ни странно стандартные патерны довольно хорошо ложатся на Javascript.
Но я к чему, на odesk'e (где мой основной заработок вне постоянной работы) и других подобных сервисах, практически нет тасков на чистый client side. Правда это относится к программерской части, в плане кодерской части (верстальщики) работы много, но $/ph не стоит потраченного времени. Так что увы, чистого client side разработчика может позволить только более-менее крупные компании. Так что сидя дома на этом не заработаешь.
Но я понимаю тебя, я полюбил питон благодаря Javascript.


Файл: 13244742167971.jpg - увеличить - (253.10KB, 720x1663)
1072 No. 1072 hide watch quickreply x     [Ответ]
Что я делаю не так? Приходит ответ с сервера в виде пустой строки, мне нужно послать запрос опять с определённой задержкой в этом случае. но он не посылается, потому что пустая строка оказывается не такая пустая блять. Что за хуйня, почему условие не срабатывает?
function answer_user2(data){
 
 
var str = $.trim( data );
 
 
if ( (str != '') ){                    
 
 
$("div#user2").text(str);
 
$("#sub").removeAttr("disabled");                    
 
}else{                    
 
setTimeout(user2_check,2500);
 
    }                    
 
}


Файл: 13000890913301.jpg - увеличить - (60.62KB, 468x247)
662 No. 662 hide watch expand quickreply x     [Ответ]
Господа, буду признателен, если кто-нибудь поможет. Допустим, имею вот такой участок кода:
...
<div id="fgs">
  Клик
</div>
<div id="asd">
</div>
...
Задача: по щелчку на #fgs загружать в блок #asd содержимое другого html-файла без перезагрузки всей страницы. Фреймы неприемлемы.
6 сообщений и 2 картинок пропущено. Нажми здесь для просмотра.
>> No. 678 x  
>>675
да, ты прав
>> No. 1061 x  
test
>> No. 1062 x  
Test
>> No. 1063 x  
Файл: 13235237317702.jpg - увеличить - (28.09KB, 319x480)
1063
как говорится, плох тот быдлокодер, который не написал свою вайпалку.
>> No. 1070 x  
Файл: 13240077694315.png - увеличить - (50.72KB, 500x447)
1070
Пацаны, спрошу здесь про Ajax, чтобы треды не плодить. Суть такова, нужно реализовать чатик 2ух пользователей. Сделал в лоб, каждые 5 секунд от двух пользователей посылается фоновый запрос к похапе скрипту на проверку не пришло ли новое сообщение. Так вот, когда сообщения нет, то выводятся пустые строки аля "" в Chrome. В опере и фурифоксе и даже в IE нет такого. как обработать ответ от сервера чтобы не было такой хуйни?


Файл: 13214545090085.jpg - увеличить - (45.51KB, 479x480)
1030 No. 1030 hide watch expand quickreply x     [Ответ]
Вы только взгляните, какое говно мне приходится писать на дерьме версии 5.2:
    /**
     * Получение пути хранения файлов для определенной сущности.
     * @param integer Идентификатор сущности.
     * @return string
     */
    private function getEntityDataDirectory ($entityId) {
      $propertyClassName = get_class ($this);
      $entityClassName = call_user_func (array ($propertyClassName, 'getEntityClassName'));
      return call_user_func (array ($entityClassName, 'getDataDirectoryById'), $entityId);
    }
13 сообщений пропущено. Нажми здесь для просмотра.
>> No. 1060 x  
Файл: 13234486523861.jpg - увеличить - (103.91KB, 508x367)
1060
> Возможно, возможно
Ну-ка продемонстрируй. Есть четыре таблицы со следующими структурами:
clusters: (таблица кластеров)
  • id (идентификатор кластера)
  • name (название кластера)
entities: (таблица сущностей)
  • id (идентификатор сущности)
  • cluster_id (идентификатор кластера)
  • name (название сущности)
properties: (таблица свойств)
  • id (идентификатор свойства)
  • cluster_id (идентификатор кластера)
  • name (название свойства)
property_values: (таблица значений свойств)
  • id (идентификатор значения свойства)
  • entity_id (идентификатор сущности)
  • property_id (идентификатор свойства)
- value (значение значения свойства)
Кластер — это что-то типа группы сущностей. Нужен, например, если есть несколько типов сущностей (статьи, фотогалерея, новости, файлы, товары интернет-магазина) и если для них нужны разные свойства (грубо говоря, чтобы у статей не было свойства "цена", которая нужна только товарам интернет-магазина).
Теперь нужно организовать такой поиск:
SELECT * FROM entities WHERE свойство_с_идентификатором_5 > '100' OR свойство_с_идентификатором_10 = 'abcde' OR свойство_с_идентификатором_15 IN (5, 6, 7)
Как это сделать? Я сам уверен, что нельзя, плюс служба поддержки используемой нами говноCMS подтвердила, что подобный поиск в таком способе хранений доп. свойств невозможен.
>> No. 1065 x  
>>1060
>Кластер — это что-то типа группы сущностей.
Нормальные люди называют это "класс".
>SELECT * FROM entities WHERE свойство_с_идентификатором_5 > '100' OR свойство_с_идентификатором_10 = 'abcde' OR свойство_с_идентификатором_15 IN (5, 6, 7)
property_values сократил до values.
SELECT * FROM entities 
 LEFT JOIN VALUES AS values_5 ON values_5.entity_id=entities.id AND values_5.property_id=5
 LEFT JOIN VALUES AS values_10 ON values_10.entity_id=entities.id AND values_10.property_id=10
 LEFT JOIN VALUES AS values_15 ON values_15.entity_id=entities.id AND values_15.property_id=15
WHERE
 values_5.value > 100 OR values_10.value = 'abcde' OR values_15.value IN (5,6,7);
Причем у меня в проекте можно было писать
SELECT * FROM entities WHERE entities->свойство_с_идентификатором_5 > '100' OR entities->свойство_с_идентификатором_10 = 'abcde' OR entities->свойство_с_идентификатором_15 IN (5, 6, 7)
И вся эта херня с джойнами генерилась сама. Причем могли быть как left, так inner в зависимости от того, что надо.
>Как это сделать? Я сам уверен, что нельзя, плюс служба поддержки используемой нами говноCMS подтвердила, что подобный поиск в таком способе хранений доп. свойств невозможен.
Просто ты не знаешь SQL. Продолжай учить. А они вообще долбоебы, по-моему.
>> No. 1066 x  
>>1065
Понятно, что values - ключевое слово, но для примера похуй
>> No. 1068 x  
Файл: 1323960988216.png - увеличить - (3.81KB, 200x61)
1068
>>1065
Охуеть. Вот это да. Left join творит чудеса! Спасибо тебе, доброанон! Пойду-ка я теперь реализовывать псевдоSQL, подобный твоему.
SELECT `entities`.`id` AS `id`, `entities`.`name` AS `name`, `values_3`.`value` AS `type`, `values_4`.`value` AS `price`, `values_5`.`value` AS `novelty`, `values_6`.`value` AS `category` FROM `entities` LEFT JOIN `values` `values_3` ON `values_3`.`property_id` = 3 AND `values_3`.`entity_id` = `entities`.`id` LEFT JOIN `values` `values_4` ON `values_4`.`property_id` = 4 AND `values_4`.`entity_id` = `entities`.`id` LEFT JOIN `values` `values_5` ON `values_5`.`property_id` = 5 AND `values_5`.`entity_id` = `entities`.`id` LEFT JOIN `values` `values_6` ON `values_6`.`property_id` = 6 AND `values_6`.`entity_id` = `entities`.`id`;
+----+---------+------+--------+---------+----------+
| id | name | type | price | novelty | category |
+----+---------+------+--------+---------+----------+
| 1 | Toshiba | 5 | 20000 | 1 | 6 |
| 2 | Bmw | 2 | 100000 | 0 | 3 |
| 3 | Acer | 5 | 25000 | 0 | 4 |
| 4 | Toyota | 5 | 110000 | 1 | 6 |
+----+---------+------+--------+---------+----------+
>> No. 1069 x  
>>1068
Подожди, не спеши. Послушай сначала про танцы с граблями.
У меня было два типа связей, object->property и object=>property. Логически это означало, что в первом случае объекты выбираются вне зависимости от наличия у них свойства property, а во втором - выбираются только те объекты, у которых property есть. Технически -> реализуется при помощи left join, а => при помощи inner join. Нахуя это нужно? Оптимизация. Если мы возьмем запрос, потом добавим к нему кучу inner join, результирующий запрос может получиться быстрее исходного за счет хорошего плана выполнения, где наверх всплыл какой-то короткий индекс. С left join такой номер не пройдет, дополнительные left join не могут сократить основной цикл. Поэтому в плане быстродействия желательно использовать => (inner join), но он не всегда может дать нужный результат, так что иногда нужен -> (left join). Я не стал там ИИ городить, а просто оставил это программисту.
Реализация. Запрос бился на токены, там выявлялись все свойства (-> и =>). Потом детектились нужные таблицы в секции FROM и к ним пририсовывались пачки join, вычисленных по найденным свойствам.
А теперь о главном. Не надо так делать. Парсить запрос было ошибкой. Дело в том, что этот OQL все равно уже не является стандартным и завязан на парсер OQL->SQL. Поэтому лучше сразу задавать запросы не в виде строки, а в структурированной форме, которую парсить не надо. Это будет куда быстрее и надежнее. Сейчас я даже с обычным SQL работаю примерно так:
        $sql=Db::SelectSql()
             ->addField('c1.*')
             ->addField('c2.name as parentId_name')
             ->addTable("$className AS c1")
             ->leftJoinTo('o as c2', 'c1.parentId = c2.id')
             ->addCondition(Db::sql('c1.'. Db::tree()->inTheBranchSql(WebApp::getInstance()->getClientId())));
 
        if(ClassByName::get($className)->getAllFields()->find('ownerId'))
            $sql->addField('ownerUser.name as ownerId_name')
                ->leftJoinTo('User AS ownerUser', 'c1.ownerId = ownerUser.id');
 
        return $sql;
Сам класс занимается тем, что складывает все в пачку массивов, и преобразует все в строку, когда уже надо выполнять запрос. Примерно так:
    /// Add table or compound to FROM clause
    public function addTable($table)
    {
        $this->from[]=$table;
        return $this;
    }
 
    /// Add condition to WHERE clause
    public function addCondition($condition)
    {
        $this->where[]=$condition;
        return $this;
    }
 
    /// Add field to ORDER BY clause
    public function addOrder($order)
    {
        $this->order[]=$order;
        return $this;
    }
//....
    /// (string) operator
    public function __toString()
    {
        return 'SELECT'
            .$this->getPart(' ', $this->options, ' ')
            .$this->getPart(' ', $this->select)
            .$this->getPart(' FROM ', $this->from)
            .$this->getPart(' WHERE ', $this->where, ' AND ')
            .$this->getPart(' GROUP BY ', $this->groupBy)
            .$this->getPart(' HAVING ', $this->having)
            .$this->getPart(' ORDER BY ', $this->order)
            .$this->getPart(' LIMIT ', $this->limit);
    }
//....
на основе этого легко и непринужденно строится наследованный класс, где будут добавлены методы для удобной работы со свойствами в этой конкретной структуре базы. Вот пример использования такого расширения:
    public static function clientBranchSqlWithParent($className)
    {    
        return Db::SelectSql()
                ->addField('c1.*')
                ->addField('c2.name as parentId_name')
                ->addTable("$className AS c1")
                ->leftJoinTo("$className as c2", 'c1.parentId = c2.id')
                ->restrictByCurrentClient('c1');
    }    
restrictByCurrentClient - это уже специфический для данной базы метод, добавляющий часто используемые условия.


Файл: 13210289108705.jpg - увеличить - (214.88KB, 640x480)
1024 No. 1024 hide watch quickreply x     [Ответ]
Пыхач, php тут ни при чем, но есть сайт и есть почти на каждой странице у него код <script type="text/javascript" src="https://apis.google.com/js/plusone.js">; который делает страницы виснуть. Что делать? Там всегда одно и то же в этом сраном файле?
>> No. 1025 x  
Нашел только пару хоть немного интересных строк, но мне кажется что они не сильно быстро могут меняться.
window.___jsl.h=window.___jsl.h||'m;\/_\/apps-static\/_\/js\/widget\/__features__\/rt=j\/ver=d13L5EILSHY.ru.\/am=!Nlu9uRh7D4d0YEmA\/d=1\/';
 
"developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ"
Думаю, стоит этот файл кэшировать у себя и даже напрямую вставлять в код страницы целиком.
>> No. 1026 x  
А вот хуй, когда сервак сам этот код скачивает и вставляет в страницу, то там вообще нет этого всего и сраная кнопка не появляется.
>> No. 1048 x  
Сунь этот JavaScript перед закрывающим тегом <body> примерно так:
    <script type="text/javascript" src="https://apis.google.com/js/plusone.js">
</body>
И после него вставь ещё твой JavaScript, который делает кнопки.
Дело в том, бро, что ЯваСкрипты блокируют дальнейшую загрузку страницы пока не будут загружены, интерпретированы и выполнены по возможности.
>> No. 1052 x  
>>1048
Нульчую, причем даже гугл аналитикс и другие пидоры предлагают их код в хеад-тэг вставлять, что нихуево притормаживает страницу.


Файл: 13210406734539.jpg - увеличить - (20.63KB, 328x360)
1027 No. 1027 hide watch quickreply x     [Ответ]
Я пишу сайты на ASP.NET, который работает быстрее, чем PHP. А ещё я это получаю результат быстрее, чем PHP-быдлокодеры.
ЧЯДНТ?
>> No. 1028 x  
>>1027
s/это/
>> No. 1029 x  
>ЧЯДНТ?
Пишешь сюда.
Я могу писать прекрасные веб-приложения и на перле, но всем похуй. На перле никто не видел больших, мощных, стабильных сайтов, а я на дотнете не видел.
За моими плечами опыт писания сайтов на 5 языках и могу ответсвтенно заявить что всё что их отличает по большому счету - набор библиотек.
Сейчас на работе активно разрабатываем проект на ms mvc 3 и мне печально признавать что тот же самый функционал на рельсах взлетел бы раза в 1.5 быстрее, в частности упор производительности сейчас именно в базу данных, что почти полностью нивелирует процессорное время проёбаное языком программирования, а инструментарии деплоя/миграций/интеграции/переносимости/сборки статики у рельсов мягко говоря лучше чем у дудки.
Я верю что где-то этот фреймворк может найти своё лучшее применение, но в целом набор библиотек в дотнете говно.
>> No. 1047 x  
Файл: 13221743860223.png - увеличить - (173.18KB, 487x484)
1047
Шарпоинтом обмазываешься небось?


Файл: 13218389667992.png - увеличить - (26.27KB, 256x256)
1033 No. 1033 hide watch expand quickreply x     [Ответ]
Привет пэхопэч, пытаюсь реализовать твиттерский слайдер(при нажатии на твит, справа отображаются ретвиты), но выходит пока хуево. Главной проблемой является то, что я не могу задать верстку для выводящегося контента. Мудрый анон, поделись туториалом/кодом/советом.
Мой быдло-код:
jQuery('#adblock').live('click',function() {
 
        var class= jQuery(this).attr('class');
        var html= jQuery(this).html();
        var slider_div= '<div class="slider_div">'+html+'</div>';
 
        jQuery('#bodyProfile').append(slider_div);
        jQuery('.settingsBlock').css('display','none');
    });
Грубо говоря, я не могу разбить на части переменную html. Halp! Also, может кто предложит более просто и рациональное решение?
3 сообщений пропущено. Нажми здесь для просмотра.
>> No. 1037 x  
>>1036
нахуя извлекать хтмл-код из #adblock?
будь проще, бро:
$('#adblock img').remove (); // убрать картинку нахуй
$('#adblock span').css ('color', 'red'); // к спану применить другой стиль
>> No. 1038 x  
>>1037
Я извлекаю этот код, что бы отобразить его в правом блоке при клике. Можно ли то же самое проделать с переменной html?
>> No. 1039 x  
>>1038
>Можно ли то же самое проделать с переменной html
Всмысле то, что ты написал.
>> No. 1040 x  
var oldHtml = $('#adblock').html ();
$('#adblock img').remove (); // убрать картинку нахуй
$('#adblock span').css ('color', 'red'); // к спану применить другой стиль
var newHtml = $('#adblock').html (); // оперируешь с newHtml, куда-нибудь его присобачиваешь
$('#adblock').html (oldHtml); // присобачиваешь после этой строки, имеется ввиду
>> No. 1043 x  
Файл: 13220885006935.jpg - увеличить - (104.31KB, 1280x1024)
1043
>>1040
Сейчас попробую, но вроде работать будет, спасибо тебе, мудрый анон.


Файл: 13174174683799.jpg - увеличить - (64.07KB, 800x600)
985 No. 985 hide watch quickreply x     [Ответ]
Как заставить пхп интерпертировать такую строку, как если тоже самое было вызвано инклудом: $str = 'test<?php echo "hey"; ?>' ?
>> No. 986 x  
>>985
Если я тебя правильно понял
ob_start();
echo "hey";
$str = 'test'.ob_get_flush();
>> No. 1020 x  
Держи.
<?php
$s='test:<?php echo time();?>';
eval('?>'.$s);
>> No. 1021 x  
>>1020
Спасибо тебе, но я уже нашел, просто не отписался тогда. Вот только я не знаю, опасен ли такой подход? Интепретатор точно только пхп теги обрабатывать будет?
>> No. 1042 x  
>>1021
А что он вообще еще обрабатывает?
>> No. 1044 x  
>>1042
Без ?> строка будет обработана полностью как пехапе код.


Файл: 13205715813817.jpg - увеличить - (16.97KB, 196x200)
1022 No. 1022 hide watch quickreply x     [Ответ]
ВИДЕОКУРС ЕВГЕНИЯ ПОПОВА
>> No. 1023 x  
ИЗУЧИТЕ РНР ВСЕГО ЗА 12 ЧАСОВ, БЕСПЛАТНО СКАЧАВ АРХИВ С НАШИМИ ВИДЕОКУРСАМИ (ПАРОЛЬ НА АРХИВ 123456)
>> No. 1049 x  
АХАХА, СМЕШНО XDDD


Файл: 13191380630308.jpg - увеличить - (31.63KB, 316x450)
1012 No. 1012 hide watch quickreply x     [Ответ]
Здравствуй, Вебкодерач.
Решил я обмазаться книгами и различными материалами по PHP.
Срач на тему "PHP для петушков" и советы по другим языкам не нужны, я решил, что с этого языка будет легче начать web-программирование
Так вот, аноны-альтруисты, посоветуйте годных материалов по PHP, но таких, чтоюы в них преобладала преимущественно практическая сторона обучения так как я прочитал уже пару книг и вполне могу в ООП и несложный PHP-код.
Различные ссылки на ресурсы, где обсуждаются php-рецепты и реализация разных вещей - буду крайне признателен.
Вот. Надеюсь кто-то откликнется.
Я не ленивое хуйло, тоже сам ищу в гуглах, но думаю, что тут наверняка есть те, кто могли бы мне помочь.
Базовые знания с++, с#, могу в html и css
>> No. 1013 x  
Ладно, я не буду тебя говнами поливать, но ответь почему же именно пхп?
есть жавы, сишарпы, руби, пистоны, жаваскрипты, перлы и т.д. for the fuck sake WHY?
>> No. 1014 x  
>>1013
Мне говорили, что , к примеру, для c# .net и всякое разное чтобы использовать надо лицензию на овердохуя бабла иметь.
А вообще я ведь написал, что мне сказали PHP - не сложный язык. Освою его, напишу какую-нибудь перделку, дальше уже видно будет.
Многие в программировании начинают с изучения Pascal, но это ведь не значит, что всю жизнь они на нем писать будут.
>> No. 1017 x  
>>1014
Был бы у меня выбор я бы начинал не с паскаля, а с javascript'а.
На самом деле в php главных косяка два - ёбаный графоманский синтаксис и общий пиздец с неймспейсами, потоком исполнения и очень странной философией точки входа.
Сам язык простой и вся суть его описывается довольно легко
$a = 42;
$b = 'a';
$$b == 41; //true
Здесь можно сразу увидеть как работает язык - все ссылки это строки и лежат они в глобальном неймспейсе. Отсюда сразу же следует как писать быстрый код (сократить время перебора по хешу путём коротких имён переменных, ограничения области имён и т.д.), в свою очередь в нём не разделяется хэщ и массив как таковые (лол глупо их одинаково в памяти организовывать, но им похуй).
Почитай туториалы Symfony, Code Igniter, CakePHP. Там хоть увидишь свод лучших практик пхп.
Не засиживайся на php бро
>> No. 1018 x  
>>1017 FIXED
$a = 42;
$b = 'a';
$$b == 42; //true


Файл: 13191136221639.jpg - увеличить - (49.47KB, 500x500)
1009 No. 1009 hide watch quickreply x     [Ответ]
Сап, посоны. Быдлопроблемы. Насчёт функкции printf в PHP. Сегодня пытался написать что то подобное:
printf ("<table style='menu'>
<tr><td width = '30%'>%s</td>
<tr><td width = '70%'>%s</td>
", $mass['one'], $mass['two']);
Денвер выкидывал ошибки. Что то там про аргументы. Потом примерно понял причину и заменил все проценты в параметрах ячейки на фиксированые величины в пикселях. Всё прокатило и работает. Но всё таки как избежать такой проблемы, если параметры таблиц нужны именно в процентах? Кавычки, я знаю, можно экранировать. С процентами что то подобное?
>> No. 1010 x  
Файл: 13191141759115.jpg - увеличить - (34.27KB, 410x400)
1010
Бампую же!
>> No. 1011 x  
двойной процент поди и не пробовал, лол
>> No. 1015 x  
Ты занимаешься хуйней, почему тебе понадобилось выводить это функцией?
>> No. 1016 x  
Не пиши на пехепе и будет всё ок.
Юзай стили и шаблоны
<table>
<tbody>
<tr><th>xui</th><td>{{ mass.one }}</td><td>{{ mass.two }}</td></tr>
</tbody>
</table>
>> No. 1019 x  
>>1016
>Не пиши на пехепе и будет всё ок.
Еблан и с хорошим инструментов не сможет ничего сделать, рубиблядь.


Файл: 1318090557422.jpg - увеличить - (66.08KB, 422x600)
1000 No. 1000 hide watch quickreply x     [Ответ]
Ребята, быстро к сути дела! Хочу написать сайт суть такова. На сайте будет одна единственная логическая игра (уголки к примеру). Казалось бы - бери да делай! Но есть пара вопросов. Основной - это как соединить двух пользователей, что бы они могли попеременно делать ходы, и что бы все обновления были незаметны. К тому же игра должна быть безопасной. В том плане что любой левый чел не мог бы просто перейти по ссылке рума и присоединиться к игре третьим или вообще внести ад и разруху в алгоритм. Опыта у меня практически нет, но вот пока шершавый план действий.
1) Первый пользователь создаёт рум, Id игры, его айпи и сессия заносяться в базу данных. Благодаря этой информации по ссылке rooms у нас отобразиться что создана комната с одним игроком в ней с таким то ником.
2) Второй игрок видит всю эту хуйню и решает присоединиться. Кликая по ссылке таже информация в бд заносится и про него. Итого у нас есть одна полная запись по одной игре, которую можно начинать. Это же и должно сделать в игре некую безопасность, т.к каждого левого вошедшего в игру можно будет легко опрокинуть, сверив сессию и айпи.
3) Игра начинается, проверяется не ливнули ли пользователи. Первый ход делается player1, создателем рума.
4) Переставив шашку, информация путём jQuery незаметно так передалас в бд - ход игрока записался.
И тут блядь вопрос. Как о том что player1 походил узнает player2? Пока что решение проблемы я вижу в лоб (или лучше через жопу) это тупо в фоновом режиме посылать запросы к бд (к той таблице которая отвечает за ходы и расклад игры) и выводить всё это на странице.
Как то так, поток сознания изложил. Нужно больше помощи, спрашивать мне больше не у кого (ну только если на форумах регаться). Делаю это не для ололо_заработка сео и прочей хуерги, можно считать что это спор программиста с быдлокодером-недоучкой.
>> No. 1002 x  
player1 отправляет запрос, но сервер не ответит на него, пока player2 не выполнит ход. Сервер сбрасывает соединение по таймауту (например, 30 секунд). В этом случае player1 вынужден сделать еще один запрос. Так сделано в чат.рф например.
Т.е. вместо таких запросов:
player1 [00:00] эй, противник ходил?
server [00:00] нет еще
player1 [00:01] эй, противник ходил?
server [00:01] нет еще
.......
player1 [00:43] эй, противник ходил?
server [00:43] да, он ходил так-то
получатся такие запросы:
player1 [00:00] эй, противник ходил?
server [00:30] нет еще
player1 [00:30] эй, противник ходил?
server [00:43] да, он ходил так-то
>> No. 1003 x  
>>1002
Ага, т.е если после запроса player1 player2 не походит в указанный таймаут то возвращается к примеру false и запрос посылается заново. Если player2 походил, то всё также, фоново без перезагрузки, данные о новом расположении вражеских шашек отображаются на доске, и запросы с таймаутом посылаются теперь от player2. хм, вроде всё просто, но ща вспомню что я хотел спросить.
Вот в чём вопрос. Как разумней организовать вопрос и ответ от сервера? Очень кривая перспектива заносить данные о ходах в бд ящитаю. Но с другой стороны как ещё их хранить?
Алсо, ещё вопрос возник по написанному.
>player1 отправляет запрос, но сервер не ответит на него, пока player2 не выполнит ход.
тут я понял что не всё понял до конца.
>server [00:43] да, он ходил так-то
Если player1 сделал запрос в 00:30, то сервер ответит ему только в 01:00. Откуда тогда ответ от сервера в 00:43? Или я как тупая макака чего-то недогоняю?
похожий тред в pr сосача, закончился безрезультатно, немного печально. http://2ch.so/pr/res/72601.html
>> No. 1004 x  
ОП, почитай про long pool и keep-alive и удали нахуй тред. Двиг пеши на nodejs/tornado/eventmachine. база данных тут нахуй не нужна, но если сильно хочется то лучше юзать nosql докементно-ориентированные, а в общем случае я бы тупо сериализовывал данные по игре в какой-нибудь кеширующий сервер.
>Или я как тупая макака чего-то недогоняю?
Ты не догоняешь главной фишки - веб сервер может обрабатывать запрос достаточно долго (у кого-то это ограничение в 30 секунд) и можно этим пользоваться - специально задерживать ответ от сервера до какого-нибудь события. Таким образом мы можем инициировать действия с сервера.
с:ламя
>> No. 1005 x  
>>1003
> Если player1 сделал запрос в 00:30, то сервер ответит ему только в 01:00. Откуда тогда ответ от сервера в 00:43?
Сервер ответит либо при ходе противника, либо через 30 секунд. Т.е. сервер не обязан отвечать только через 30 секунд. Сервер ответит гарантировано через 30 секунд, и посылать ли запрос снова зависит от его ответа.
>> No. 1006 x  
>>1004
читаю про node.js/socket.io
Тред удалять пока не буду показать же надо будет потом своё поделие.


Файл: 13174749559215.jpg - увеличить - (595.41KB, 1233x749)
987 No. 987 hide watch quickreply x     [Ответ]
Привет кодач. Сделал тут недавно на коленке сайт с шаблонами для DLE, чтобы ваши сайты на стандартном шаблоне можно было переодеть. Вот пруф: http://themesdle.ru/
Пишите в треде, что добавить, что снести нах.
>> No. 1001 x  
Файл: 13181245403256.jpg - увеличить - (47.07KB, 380x480)
1001
Где шаблоны пиздишь?


Файл: 13177279531064.jpg - увеличить - (119.21KB, 346x500)
992 No. 992 hide watch quickreply x     [Ответ]
Анон, не спеши поливать говном. Расскажу всё как есть.
Нужно написать бота, который будет собирать информацию с букмекерских сайтов по типу http://www.marathonbet.com. То есть какие команды играют, и коэффициенты по ставкам.
1) весь опыт php заключается в написании говносайтика аля башорг
2) не понимаю как вообще можно брать данные с сайта. понимаю если на сайте есть rss feeder, ещё куда ни шло, а тут совсем не осознаю.
может здесь есть ботовод-гуру, который в треде или в личной переписке надаёт мне советов?
>> No. 993 x  
2) Парсить страницы, например.
>> No. 994 x  
2.1 Идешь и читаешь про curl для пхп.
2.2 Пиздишь инфу из ХТМЛа этой библиотекой: http://simplehtmldom.sourceforge.net/
>> No. 995 x  
пошёл читать.
ещё зайду к вам, посаны.
>> No. 998 x  
>>994
Хуёвая что-то библиотека. Вставил в пример (!), приложенный с ней, другой сайт вместо гугла и всё сдулось. Allowed memory size of 134217728 bytes exhausted.
>> No. 999 x  
>>998
Уёбок.


Файл: 13177377198294.jpg - увеличить - (68.66KB, 750x576)
996 No. 996 hide watch quickreply x     [Ответ]
Реквестирую гуру друпала в тред.
Есть один друпал 7 версии и sql2xml класс с помощью которого мы получаем данные (характеристики японских машин выставленных на аукцион) как это все хитро соединить?
Пик в принципе рандом.
>> No. 997 x  
Предел последовательности реально соответствует экспериментальный разрыв функции, в итоге приходим к логическому противоречию. Огибающая семейства поверхностей, конечно, стабилизирует многомерный ротор векторного поля, таким образом сбылась мечта идиота - утверждение полностью доказано. Абсолютная погрешность, очевидно, упорядочивает косвенный многочлен, при этом, вместо 13 можно взять любую другую константу. Сравнивая две формулы, приходим к следующему заключению: линейное программирование масштабирует неопровержимый вектор, таким образом сбылась мечта идиота - утверждение полностью доказано.
include_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
if (isset($_GET['cron_key']) && variable_get('cron_key', 'drupal') == $_GET['cron_key']) {
  drupal_cron_run();
}
else {
  watchdog('cron', 'Cron could not run because an invalid key was used.', array(), WATCHDOG_NOTICE);
  drupal_access_denied();
}
Целое число нейтрализует линейно зависимый предел последовательности, таким образом сбылась мечта идиота - утверждение полностью доказано. Надо сказать, что аффинное преобразование масштабирует косвенный абсолютно сходящийся ряд, дальнейшие выкладки оставим студентам в качестве несложной домашней работы. Функция выпуклая кверху транслирует математический анализ, при этом, вместо 13 можно взять любую другую константу. Дело в том, что замкнутое множество транслирует тригонометрический степенной ряд, как и предполагалось.
if (is_int($return)) {
  switch ($return) {
    case MENU_NOT_FOUND:
      drupal_not_found();
      break;
    case MENU_ACCESS_DENIED:
      drupal_access_denied();
      break;
    case MENU_SITE_OFFLINE:
      drupal_site_offline();
      break;
  }
}
Функция выпуклая кверху реально развивает математический анализ, как и предполагалось. Рассмотрим непрерывную функцию y = f ( x ), заданную на отрезке [ a, b ], иррациональное число транслирует параллельный критерий сходимости Коши, в итоге приходим к логическому противоречию. Первая производная, не вдаваясь в подробности, транслирует параллельный расходящийся ряд, явно демонстрируя всю чушь вышесказанного. Доказательство, не вдаваясь в подробности, восстанавливает интеграл от функции, обращающейся в бесконечность вдоль линии, что неудивительно. Интеграл от функции, обращающейся в бесконечность вдоль линии притягивает стремящийся интеграл от функции, обращающейся в бесконечность вдоль линии, что и требовалось доказать. Асимптота, не вдаваясь в подробности, очевидна не для всех.
/**
* Set the variable that indicates if JavaScript behaviors should be applied
*/
Drupal.jsEnabled = document.getElementsByTagName && document.createElement && document.createTextNode && document.documentElement && document.getElementById;
/**
 * Extends the current object with the parameter. Works recursively.
 */
Drupal.extend = function(obj) {
  for (var i in obj) {
    if (this[i]) {
      Drupal.extend.apply(this[i], [obj[i]]);
    }
    else {
      this[i] = obj[i];
    }
  }
};


Удалить сообщение []
Пaроль  
Назад[0] [1] [2]