pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Почему происходит затруднение с ЯП PHP?

Лучший ответ: Я почитал как нужно водить машину, посмотрел кучу гонок, но когда сажусь за руль, глохну и не получается ехать. 
Что делать?

Худший ответ: Начинайте с более простых задач, переписывайте то что уже написали до тех пор, пока код не будет понятным.
Вопрос: Как сравнить символ с каждым символом из массива?

Лучший ответ: Не надо сравнивать каждый с каждым, считайте количество повторений:

function duplicateEncode(str) {
  const arr = [...str.toLowerCase()];
  const count = arr.reduce((acc, n) => (acc[n] = (acc[n] || 0) + 1, acc), {});

  return arr.map(n => count[n] > 1 ? ')' : '(').join('');
}
Или не считайте:

function duplicateEncode(str) {
  const arr = str.toLowerCase().split('');
  const duplicates = arr.reduce((acc, n) => (acc[n] = acc.hasOwnProperty(n), acc), {});

  return ''.concat(...arr.map(n => '()'[+duplicates[n]]));
}
const duplicateEncode = str => Object
  .values(Object
    .values(str.toLowerCase())
    .reduce((acc, n, i) => ((acc[n] = acc[n] || []).push(i), acc), {}))
  .reduce((acc, n) => (n.forEach(i => acc[i] = n.length > 1 ? ')' : '('), acc), [])
  .join``;
const duplicateEncode = str => Array
  .from(str.toLowerCase())
  .reduce((acc, n, i, a) => acc + (a.indexOf(n) === a.lastIndexOf(n) ? '(' : ')'), '');
const duplicateEncode = str => str
  .toLowerCase()
  .replace(/./g, (m, _, s) => String.fromCharCode(40 + (s.split(m).length > 2)));

Худший ответ: Просто попробовал) Думаю вариант так себе, но на вскидку рабочий.
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
var sourceString = '(( @';

[...sourceString]
    .map(char =>
        (
            sourceString.match(
                RegExp(char.replace(reRegExpChar, '\\$&'), 'gi'),
            ) || []
        ).length <= 1
            ? '('
            : ')',
    )
    .join('');
Вопрос: Можно ли использовать библиотеку, поддержка которой завершилась?

Лучший ответ: Конечно можно, некоторые библиотеки достигли своего финального этапа разработки, когда все ошибки исправленны, и функционал обеспечиват большинство потребностей.

Худший ответ: Можно, используйте.. Но надо понимать, что баги там никто исправлять не будет.
А форков поддерживаемых нет?
Вопрос: Spring Как создать сложную Rest ссылку?

Лучший ответ: Передавайте параметры в строке запроса.

Худший ответ: А зачем вы хотите передавать данные в PathVariable? Особенно, с учетом того, что pathvariable обязателен. Получается, что вам нужно будет перебрать все возможные комбинации pathvariable.
Как по мне, лучше просто использовать один url и в контроллере обрабатывать не pathvariable, а requestParam (required = false). А соответственно, передавать все что нужно в body POST'ом.
Если я правильно понял вашу задачу...
Только наверное, стоит при надобности, реализовать получение токена для авторизации и в заголовке передавать bearer token....
Тут скорее вам виднее, как лучше реализовать)))
Ну и для удобства используйте postman
Вопрос: Как использовать однофайловый компонент много раз?

Лучший ответ: <chat-message ...> должен быть прописан в шаблоне текущего компонента с v-for директивой, а по событию нужно добавлять данные в массив в состоянии. Прямая работа с DOM не приветствуется, тем более здесь она вообще не в тему. Смотрите документацию по Vue.js

Худший ответ: Я не такой эксперт во Vue, но тут вообще что-то явно не так, смысл Vue - работа с данными, а не с DOM. Вам нужно показывать ваше сообщение(компонент) по условию, а вы просто рисуете его в DOM. Его нужно вставлять как компонент в ваш шаблон и уже в него передавать данные, а данные обновлять с вашего сокета(с этим не работал, тут не помогу).
Вопрос: Веб и сайты адобе?

Лучший ответ: Нет. Готовый, так сказать, продукт никаких следов использования пиратских программ не оставляет.

Худший ответ: Человек покупает у вас результат работы (т.е. сайт). Каким способом вы его делали это уже только вам известно. Откуда заказчику знать? Может вы попиксельно в paint рисовали?

Даже если каким-то чудом к нему занесёт какого-то инспектора - он может только перенаправить его к вам. И вот тогда уже всё в ваших руках. Если проверка придёт к вам и станет проверять ПО и лицензии - можете получить штраф. 
Но шанс именно такого стечения обстоятельств настолько мал, что всем просто наплевать. Когда-то на Ютубе видел видео айтишника, которого уличили в установке питерского ПО на суму около 2000$ (типа заказчик-ловушка). Так вот, был назначен суд, но ни Майкрософт ни Adobe ни другие вендоры даже не отозвались на письмо-извещение). 
Я к тому, что крупным компаниям +- одна лицензия - капля в море и они даже дёргаться не станут. Даже в случае доказанного нарушения. 

Вот если сумма ущерба уже несколько миллионов - тогда другое дело. Тогда уже штраф должен окупить и судебные расходы, и адвокатов и работу инспекторов в том числе. 
Поэтому если т.н. "виновник" вообще не в состоянии платить за весь этот банкет - никто к нему никогда не придёт. Ну разве что по какой-то жалобе отдельного человека которого обидели. Да и то вряд ли :)

По собственному опыту скажу что проверку видел только один раз. Пришли по наводке (на крупную фирму). Не досчитались только пару десятков лицензионных наклеек на системниках в главном офисе (из овер10000 ПК по всех филиалах). Выписали небольшой штраф и обязали купить лицензии. Всё. Даже компьютеры не включали. 

Так что если у вас пиратского софта менее, чем на 5к зелени - я бы не волновался.
Вопрос: Как правильно конфигурировать сторонний бандл в своём?

Лучший ответ: Переопределение конфигурации в Symfony вне основного процесса загрузки конфигурационных файлов - не самое простое дело. Этот процесс закрыт от прямой кастомизации т.к. основной процесс загрузки и обработки конфигурации bundles целиком отдан на откуп им самим. Причина подобных ограничений в том что загрузка конфигурации - один из самых ранних этапов работы и, как и для всех подобных частей кода - там довольно мало пространства для манёвров. В связи с этим путь (и сама возможность) переопределения конфигурации будет очень сильно зависеть от того что же именно вы хотите переопределить.

Для того чтобы лучше понять как это происходит - вам стоит подробнее изучить вопрос того как именно организована загрузка и обработка конфигурации в Symfony. 

Если вкратце:

В процессе конфигурации контейнера происходит сбор данных конфигурации из конфигурационных файлов. Эти данные сохраняются в container'е через ContainerBuilder::loadFromExtension().
Далее, собранные данные передаются в качестве основы в bundle extension (через метод load()). То, как именно bundle extension будет работать с собранными данными - целиком зависит от кода bundle'а, так что в целом с ними может произойти всё что угодно.

Как вы, надеюсь, понимаете - из-за п.2 какого-то общего подхода к переопределению данных в Symfony не существует. Поэтому, как я уже писал выше, вам необходимо определиться с тем что именно вы хотите переопределить, а дальше смотреть на код загрузчика соответствующего bundle (вот он для LiipImagineBundle).

Как видно - в случае LiipImagineBundle в целом ничего страшного не происходит, полученная конфигурация сразу отправляется в processing и потом используется для регистрации сервисов и параметров.

Поскольку процесс сборки контейнера начинается с merge pass, то вы не можете вмешаться в этот процесс через compiler pass, как это делается обычно, однако вы можете воспользоваться вот этим куском логики для того чтобы добиться своей цели: вам достаточно определить в своём bundle собственный extension и отметить что он реализует PrependExtensionInterface. Это позволит вашему extension получить экземпляр ContainerBuilder до того как будут загружаться остальные extensions, именно это позволит вам воспользоваться ContainerBuilder::loadFromExtension() для добавления параметров конфигурации к нужному вам bundle.

Несколько нетривиально, но должно работать :)

Худший ответ: Да. Кажется получилось. 

# implements CompilerPassInterface

    public function process(ContainerBuilder $container)
    {
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config/packages'));
        $loader->load('liip_imagine.yaml');
    }

Оно загрузило всё сразу в контейнер. 

PrependExtensionInterface prepend - не сработало. Ему нужны были параметры из services.yml самого бандла, а его загрузка идет после prepend, как я понял. process - срабатывает на уже готовом контейнере, и все параметры там есть. Сейчас буду понимать, всё ли правильно я делаю.
Вопрос: Где взять такой слайдер на Wordpress?

Лучший ответ: Найти/сверстать свой слайдер и натянуть его на Wordpress.

Худший ответ: Нужно сверстать такой слайдер, так как ничего готового 1-в-1 вы не найдете.
Вопрос: Возможно ли увеличить ширину содержимого письма в формате text/plain?

Лучший ответ: Формально, чтобы решить эту проблему надо указать format=fixed в Content-type, 

Content-type: text/plain; format=fixed

см. https://tools.ietf.org/html/rfc2646
тогда перевод строки рассматривается как конец строки, при format=flowed перевод строки рассматривается как конец абзаца, а строки автоматически разбиваются по ширине экрана.

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

Худший ответ: Нашел решение - увеличил максимальную длину строки, теперь обрыв не происходит. 

Если вдруг кому-то будет полезно, то:

В файле /wp-content/plugins/woocommerce/includes/emails/class-wc-email.php на 539 строке изменить значение "70":
if ( 'plain' === $this->get_email_type() ) {
			$email_content = wordwrap( preg_replace( $this->plain_search, $this->plain_replace, wp_strip_all_tags( $this->get_content_plain() ) ), 70 );
		} else {
			$email_content = $this->get_content_html();
		}

		return $email_content;
	}
Вопрос: Почему PHP записывает два раза значение массива в Json?

Лучший ответ: Так у вас сплошной бардак в коде. Вы делаете обход foreach по переменной $taskList и меняете её значение внутри цикла. Естественно, на выходе может получиться что угодно.

Худший ответ: $taskList[] = array//... вынес за foreach и отрабатывает как надо, как сказал Rsa97
Вопрос: Отследить изменения конкретного поля в бд, возможно?

Лучший ответ: Используйте триггеры:

CREATE TRIGGER `after_update_table_name` AFTER UPDATE ON `table_name`
 FOR EACH ROW BEGIN

	IF `OLD`.`field_name` <> `NEW`.`field_name` THEN
		# Your action
	END IF;

END

https://dev.mysql.com/doc/refman/8.0/en/trigger-sy...

Худший ответ: использовать триггеры
Вопрос: Рассудите спор?

Лучший ответ: Беды бэкендера вас касаться не должны, вы свою работу сделали нормально, на сколько я могу судить. Если бэкендеру хочется использовать средства Django для генерации форм, он может либо убрать вашу вёрстку формы, либо использовать её для генерации в шаблонном коде. Похоже, что он просто не умеет работать с bootstrap-формами. И приём формы ajax-запросом - это не двойная работа, если бэк написан нормально.

Худший ответ: В общем случае клиентская и серверная валидация вообще не пересекаются. На клиенте вы проверяете валидность мыла есть ли человеку 18,21 год, ошибку в вводе кредитной карты. Обязательные поля. На сервере вы валидируете никнейм, страну пользователя, обязательные поля. Все то что нельзя валидировать на клиенте. Грубо говоря на клиенте правите опечатки а на сервере получаете окончательный ответ. Поэтому озвучьте эту мысль заказчику и бэкендеру
Вопрос: Легальное использование кавер-версий музыки в маркетах?

Лучший ответ: Если кавер-версия пролностью соответствует оригиналу, то вы являетесь исполнителем произведения, а не автором, авторские права остаются у автора произведения (композитора). 
Если вы вносите какие-либо изменения, то создаете "производное произведение". Вам будет принадлежать авторское право на арранжировку, но только "при условии соблюдения прав авторов произведений, использованных для создания производного или составного произведения". Создавая арранжировку без согласия автора, вы его права нарушаете.

На практике, авторские отчисления, например за публичное использование, обычно делятся между авторами (композитором, автором текста) и исполнителем, причем исполнитель получает существенно меньше автора.

Худший ответ: 1. Правообладателям придется доказать что они понесли убытки. Каверить можно. Но эта область очень темная - я бы советовал обратиться к юристу.
2. Тут проще. Если там именно каверы и они прям не сильно похожи - то точно второй вариант - пустят сразу. Хотя зависит от ревьювера - но всегда можно подать аппеляцию.

P.S.
1. А там полная версия песни? ;-) Или 10 секунд
Вопрос: Как лучше назвать у пользователя процент вопросов, в которых он отметил хоть один ответ решением?

Лучший ответ: Это нельзя назвать ни одним из предложенных способов.
Потому что:
- не только сам пользователь отмечает ответы решениями,
- сами вопросы пользователя могут быть таковы, что никакой ответ не является решением,
- пользователь может, наоборот, отмечать решениями всё подряд.
Так что это просто "доля (процент) отмеченных решений", чтобы не вводить ложную интерпретацию статистики.

Худший ответ: Ведь правильным может быть только один ответ.Нет! Правильным может быть множество ответов, или ни один из них.Как лучше назвать у пользователя процент вопросов, в которых он отметил хоть один ответ решением?Количество вопросов отмеченных решением или КВОР.ВежливостьПри чем тут вежливость?Благодарность?За что и какое это имеет отношение к ответам?УдовлетворенностьКакое это отношение имеет к расстановке ответов?ЗабывчивостьНу человек может не сделать что-то осознанно, а не только по забывчивости.
Вопрос: Почему одни каталоги отображаются с кавычками, а другие без?

Лучший ответ: У вас пробелы в именах папок. Отсюда и кавычки. Шелл вам подсказывает, что пробел это часть имени папки (в вашем случае пробел в конце).

Худший ответ: потому, что они с пробелами в имени
Вопрос: Правильно ли выделять целый порт под определенную задачу на сервере?

Лучший ответ: Нет. Выделять 100500 портов под каждый вид запросов - иррационально.
Нужен какой-нибудь протокол поверх TCP - например HTTP
Если хотите реализовать свой - посмотрите, как устроен он, например.

Худший ответ: Если взглянуть на вопрос в ключе потенциальных повышений нагрузки и расширения функционала - то один порт, на одном хосте окажутся узким местом. Так что можно смотреть и шире - сервисы расползутся по разным хостам и т.п. Или не смотреть на это.
Вопрос: Вопрос от абсолютного дилетанта. Как правильно подобрать команду разработчиков соц сети, как понять что указанная ими цена адекватная?

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

Худший ответ: сперва надо нанять кого то чтобы написал вам тз, потом взять команда на недельку и посмотреть что они наваяют по этому тз, затраты минимальные , но сразу виден результат
Вопрос: Существует ли в природе переходник с Mini PCI-e на RJ45 (с поддержкой PoE)?

Лучший ответ: Дело в том что модем - это всего лишь модем, к нему нужен роутер чтобы обеспечить ethernet.
ищем mini pcie router и находим что вы хотели
https://aliexpress.ru/item/10000320522890.html - 5...16v
для POE взять https://aliexpress.ru/item/32920962794.html - 12v для ип камер, если сдохнет можно посмотреть ввиде отдельных платок https://aliexpress.ru/item/4000879356160.html .

Но имхо колхоз это, проще взять роутер с 4G : https://aliexpress.ru/item/4000875089639.html

Худший ответ: Существуют вот такие девайсы  , но того что вы хотите нет, модем скорее всего предназначен для установки внутрь ноутбуков или материнских плат
Вопрос: Где можно дешево поднять 1000-100к виртуалок для нагрузочных тестов?

Лучший ответ: Едете с паспортом и $ в ЦОД и договариваетесь. Можно например к хостеру. Но без 100% предоплаты и личного присутствия я бы например с вами не связывался.

Худший ответ: Есть такой сервис
https://loader.io/
Вопрос: Как обратиться к трем слайдам в slick?

Лучший ответ: .slick-active {
  // стиль для всех активных
}
.slick-active + .slick-active {
  // уточняем стиль для активного, идущего за активным
}
.slick-active + .slick-active + .slick-active {
 // уточняем стиль для активного, идущего за активным, идущего за активным =)
}

Худший ответ: .active {
// обращение
}
Вопрос: Как сделать, чтобы функция возвращала все элементы?

Лучший ответ: Что это вообще такое. Какая цель этой программы. Я бы написал вот так:
numbers = [number for number in range(1, 7)]

def main():
      for number in numbers:
            print(number)

if __name__ == "__main__":
      main()
Как сделать, чтобы функция возвращала все элементы?
Если вы хотите создать генератор, то почитайте об этом тут https://docs.python.org/3/tutorial/classes.html#ge...
numbers = [number for number in range(1, 7)]

def numbers_generator(numbers):
      for number in numbers:
            yield number

def main():
     for number in numbers_generator(numbers):
          print(number + 1)

if  __name__ == "__main__":
    main()
Хотя этой код, как по мне не имеет некакого смысла.

Худший ответ: Потому что выход из функции происходит при первом попавшемся  return'е с тем значением, которое первое туда попало.
Учите матчасть. Читайте внимательно.
Вопрос: Какой антивирус подойдет для разработчика?

Лучший ответ: Привет, лет 10 - под Windows не использую антивирус, вообще никакой.
Потому, что я знаю и понимаю, что я скачиваю и для сего использую.
Если есть сомнения то https://www.virustotal.com/
Для совсем крайних случаев использую виртуалку.

Худший ответ: Недавно организация AV-TEST признала Windows Defender (встеронный в виндоус) одним из наиболее эффективных средств защиты. А так да, разработчики обычно хоть немного да понимают в компьютерной безопасности.
Вопрос: Как можно защитить PHP, не замедлив его?

Лучший ответ: Ваш код никому не нужен.

Худший ответ: А какой смысл защищать серверный код? Он же у вас на сервере.
Защищайте сервер и только.
Вопрос: Всем привет) не могу пройти задание на FCC?

Лучший ответ: function frankenSplice(arr1, arr2, n) {
  // The second array should remain the same after the function runs.
  let copy = arr2.slice()

  for(let i = 0; i < arr1.length; i++) {
    // добавляем
    copy.splice(n, 0, arr1[i])
    // сдвигаем позицию куда добавлять
    // потому что добавили один элемент
	  n = n + 1
  }
  
  return copy;
}

Худший ответ: function frankenSplice(arr1, arr2, n) {
  const newArr = arr2.slice();
  newArr.splice(n, 0, ...arr1);
  return newArr;
}...arr1 – это spread operator
Вопрос: Раскраска StringGrrid Дельфи, сохранение цвета?

Лучший ответ: Как сделать чтобы цвет сохранился?Создать массив закрашенных ячеек. Использовать OnDrawCell.

Худший ответ: Как сделать чтобы цвет сохранился?Создать массив закрашенных ячеек. Использовать OnDrawCell.
Вопрос: Как понять что в объект была добавлена информация, но не изменена существующая?

Лучший ответ: Ну так опишите эту логику в set, например, он для того и был придуман.

Худший ответ: Примерpublic class Customer
    {
        private string name;
        private int age;
        public int Id { get; set; }
        public string Name
        {
            set
            {
                if (name != null)
                {
                    Console.WriteLine("Поле уже заполнено " + name);
                }
                else
                {
                    name = value;
                }
            }
            get { return name; }         
        }
        public int Age
        {
            get { return age; }
            set
            {
                if (age != 0)
                {
                    Console.WriteLine("Поле уже заполнено " + age);
                }
                else
                {
                    age = value;
                }
            }
        }
        public Address[] Addresses { get; set; }
        public Job[] Jobs { get; set; }

    }
Вопрос: Почему время UNIX у одного пользователя отстает на три минуты?

Лучший ответ: У него системные часы просто отстают.

Худший ответ: То есть вы запрашиваете инфу с сервера - и все нормально, а запрашиваете время с компа клиента - и часы отстают? 
Серьезно?)
Ну переведите часы на сервере на 3 минуты назад что ли...
Пусть у всех спешат, зато у клиента будет всё ок)
Вопрос: Почему на сайт нельзя зайти по прямой ссылки через гугл?

Лучший ответ: Очевидно поэтому: 
А уж кто этот код на главную добавлял и зачем, вопрос к вам.

Худший ответ: какой адрес вбиваешь?  дверь или ОВФГрупру?
Вопрос: Какой парсер использовать?

Лучший ответ: только писать свой парсер и писать правила корректировки формул и других функций.

Худший ответ: Как таковых готовых решений нету.В любом случае вам придется писать парсер специально под тот магазин.Который вы хотите парсить.Если вы будете использовать питон в качестве инструмента для парсинга.То есть множество библиотек заточенных под парсинг.
Вопрос: Как подключить беспроводной принтер к проводной сети через Wi-Fi роутер?

Лучший ответ: Да, возможно.
Скорее всего необходимо подключить его локально к компьютеру по USB для однократной настройки беспроводной сети, либо сделать это с панели принтера, если она у него есть, после чего будет доступна возможность подключать его как сетевой.
Подробнее о том как это сделать необходимо читать в инструкции к конкретной модели принтера.

Худший ответ: Мало исходных данных:
1) что за роутер WIFi?
2)что за Длинк? 
3)они в одной сети? или имеют разные сети? как они между собой связаны?
Вопрос: Как полностью обесшумить компьютер, чтобы его не было абсолютно слышно, вплодь, чтобы винчестера не было слышно?

Лучший ответ: выключи его совсем :)

Худший ответ: Устранить источники шума :) То бишь вращающиеся части :)
То есть:
- БП с пассивным охлаждением. Не знаю, бывают ли такие, наверно задорого бывают. 
- Никаких кулеров на корпусе
- Процессорный кулер пассивный. Опять же не знаю, бывают ли такие, задорого наверное бывают
- Кулер видюхи исклоючительно пассивный. У меня такая была, занимала два слота, была далеко не самая мощная.
- Винт - только SSD
- Ессно никакой архаики типа DVD
Дорого, долго, сложно, ненадежно. Все равно нужен хороший обдув - ведь все эти железки нужны только для того, чтобы рассеивать тепло!
Вопрос: Какие технологии вы используете при разработке web?

Лучший ответ: Стандарт в php один — psr. 
Меня смутили две вещи:
1. Вы говорите про php и фреймворк, но в конце ваш фреймворк оказался на jquery? (Сысле?)
2. Фраза «обновил скрипт». У вас все в одном файле, что ли?

Худший ответ: 1. Переход на SASS/LESS не избавит вас от спагетти кода из стилей. В этом вам помогут всякие методологии ведения стилей.
2. Тут тоже надо с головой делать, а не кинуть всё в один файл. Попробуйте, почитайте, свяжите сборщик со своими SASS/LESS пусть компилируют в CSS, в общем: полезно для фронта. Но для вашего проекта - не жизненно необходимо, проблемы то (по вашим словам) в архитектуре, а сборщики это не решают
3, 4 - ...
5 - https://getjump.github.io/ru-php-the-right-way/  : читайте, читайте про PSR
6 - Так же как и других кодов. Тут недавно накидывали лит-ры про тестировании - погуглите в общем
Какие использую я: на данный момент нет пет-проектов, а описывать, что есть на работе не вижу смысла.
Мб другие подскажут. Можете просто погуглить вакансии, там, обычно, указывают стек технологий
Вопрос: Должен ли верстальщик реализовывать переключение языка страницы?

Лучший ответ: Сделай кнопки ссылками, дальше разработчик сам все сделает.

Худший ответ: Если верста просто макета а не конечного сайта то нет.
Если это небыло четко в ТЗ то нет.
Если надо сделать, верстальщик все равно тока 50% может.
Если cms под wp например. Транслейты  И все
Вопрос: С чего начать обучение хаккинга (тестирование безопасности)?

Лучший ответ: судя по вашему вопросу вам надо начать с анлийского

Худший ответ: Hacking: The art of exploration
На русском есть. Книгу не читал и читать вряд-ли буду, но многие о ней лестно отзывались
Вопрос: Как исполнить код взятый из базы?

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

Худший ответ: Это и правда наркомания :D
Но если нужно... то вот: PHP: eval