IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   perl to php. Плачу (https://www.imho.ws/showthread.php?t=60755)

esergey 04.06.2004 00:05

perl to php. Плачу
 
Вложений: 1
Надо переделать простенький скрипт с перла на php и рассказать мне, что делает скрипт. Скрипт называется makehash. Так как скрипт небольшой, думаю работы не больше чем на час. Плачу 5 баков, тому кто первый пришлет результат на evsergey@km.ru.
+ 1 бак за функцию, которая фильтрует входящие данные от пользователя (чтобы в строке не было html вставок и т.п.). Плачу тока или за первый скрипт или за оба (отдельно за второй не плачу).
Скрипт в атаче.

plohich 04.06.2004 00:26

не знаю как насчет первого, но функция которая убирает тэги это strip_tags()
http://php.net/manual/en/function.strip-tags.php :contract:

соответственно делаешь это на любые входящие данные

PHP код:

$text=strip_tags($_REQUEST["text"]); 


Hubbitus 04.06.2004 12:12

Цитата:

esergey:
Надо переделать простенький скрипт с перла на php и рассказать мне, что делает скрипт.
Оригинально... ты платишь за переделку скрипта, даже не зная зачем он и что делает!!! :ржать:
Я лично не хочу в бесцельные соревнования-обгонялки играть...
Если ты нормально поставишь задачу что тебе нужно от PHP скрипта и зачем, то уже можно подумать о помощи...

esergey 04.06.2004 22:29

Если бы я знал, что делает скрипт - я бы сам написал на php. Я сейчас занимаюсь разработкой крупного проекта на php. Меня попросили вставить туда этот скрипт, причем очень плохо обьснили что он делает. А перл я плоховато знаю. Поэтому жду вашей помощи. Так как до этих пор никто не написал - думаю конкуренция будет небольшая. Так что пишите.

Hubbitus 04.06.2004 23:15

Цитата:

esergey:
Меня попросили вставить туда этот скрипт, причем очень плохо обьснили что он делает.
Когда просят вставить, заказчик и не должен объяснять что скрипт делает, он должен поставить нормально задачу, и объяснить что хочет получить, а вот как это сделать - это дело программиста....

Ну и потом, если я (или кто-то любой другой) тебе сделаю и пришлю, откуда ты будешь знать что я не фигню тебе написал какую-нибудь, а именно то что было в том скрипте, раз ты не понимаешь что он делает сейчас, и не знаешь что он должен делать??!!?? :p

esergey 05.06.2004 15:20

Блин ребята, срочно надо. Плачу 10 баков. Если цена не устраивает пишите скока надо.

Сделать надо до 12 часов воскресенья.

Hubbitus 05.06.2004 21:10

Вложений: 1
Слушай, если честно так и не понял зачем он тебе нужен при таких условиях скрипт, да еще так ужасно написанный (во всех отношениях)....

Но больше даже из-за того чтобы самому себе доказать что я смогу, вот сделал (смотри аттач).
Сразу хочу сказать, что я принципиально ничего не менял. Я только переписал его на PHP, даже структуру файлов и вид их внутри повозможности оставил похожими.

Впринципе я все протестил, все работает, но если будут какие-нибудь ошибки и/или непонятки, стучи в аську - 345211, все объясню.

esergey 06.06.2004 14:19

Что-то у меня ася щас подглючивает. Пока здесь пишу.
Обьясни мне, что делает скрипт и все ли ты переделал? В скрипте 8 файлов, а у тебя только 4.

Hubbitus 06.06.2004 14:50

Цитата:

esergey:
Обьясни мне, что делает скрипт и все ли ты переделал?
Вообще это шаблон. Тоесть скрипт сам по-себе в таком сосотоянии как он есть ничего полезного не делает (ну тоесть нужно заполнить шаблон). Вообще он проверяет откуда он запущен (по домену) и в зависимости от этого выводит различное содержание...
А вообще это крайне оригинально "сделай то, незнаю что" :ржать:

Слушай, я верю что там могут быть ошибки, но гарантией того что все-таки это именно переписанный исходный текст, может в какой-то степени быть то, что я его выложил на форуме, а не просто тебе по почте прислал, как ты просил... Обхаять и покритиковать у нас всегда, как известно, гораздо больше желающих, чем сделать... (никому, ничего личного)
Да, я все переделал.

Цитата:

esergey:
В скрипте 8 файлов, а у тебя только 4.
То что во вложенном каталоге файлы, они НИКАК не используются в главном (index.cgi) если тебе это очень нужно могу и их переписать..... только надо-ли?

esergey 06.06.2004 15:11

1. Переделать надо. Эти файлы формируют domains.pm из двух других файлов.
2. Если это шаблон, как вывести с помощью этого шаблона страничку. Например, есть сайт - как добавить к нему этот скрипт, чтобы он работал для страниц сайта (или для одной старницы сайта)

Hubbitus 06.06.2004 15:54

Цитата:

esergey:
1. Переделать надо. Эти файлы формируют domains.pm из двух других файлов.
Надо - переделывай!
Ишь ты раскомандовался! Я не получил ни копейки, даже просто мы не договаривались с тобой ни о чем. Я тебе помог, а вместо банального "спасибо" одни приказания... :mad:

esergey 06.06.2004 16:53

Где ты видишь приказания? Ты спрсили надо ли переделывать - я ответил, что надо. Это ответ на твой вопрос, а не приказ.
За скрипт я вроде как плачу, причем тут спасибо.
Деньги я переведу, но я пока не увидел результата: 1. Скрипт переделан не полностью. 2. Я в первом топике просил расскзать, что делает скрипт.

Если согласен доделать скрипт (работы там на полчаса или меньше - даже мне это понятно) + рассказать как встроить этот шаблон в страницы, тогда будет и спасибо и деньги.

Hubbitus 06.06.2004 18:31

Цитата:

esergey:
За скрипт я вроде как плачу, причем тут спасибо.
При том что с такой оплатой (а главное с такой конкуренцией и таким количеством желающих сделать) можешь и дальше платить за него, искать исполнителей и приказывать им!
Я привык общаться по-человечески со всеми, буть то БОС, заказчик, или друзья...
Я уже писал что переписал данный скрипт больше из-за самоутверждения, и также просто хотел помочь, когда тебе вообще никто здесь не отвечал, а тебе вроде нужно было срочно....
Цитата:

esergey:
Деньги я переведу, но я пока не увидел результата: 1. Скрипт переделан не полностью. 2. Я в первом топике просил расскзать, что делает скрипт.
Я указал даже свой кошелек, но я нигде не требовал и не ждал денег пока. Если тебя не совсем удовлетворило то что я сделал то либо доделывай, либо хотябы говори нормально, а не в таком тоне.
Я тебе уже рассказал что делает скрипт.
Цитата:

esergey:
Если согласен доделать скрипт (работы там на полчаса или меньше - даже мне это понятно) + рассказать как встроить этот шаблон в страницы, тогда будет и спасибо и деньги.
В принципе я согласен доделать скрипт, но с таким отношением к исполнителю - цена удваивается!
И вообще стучись на аську и уже поговорим, ато устроили флуд такой...
P.S. Предлагаю мировую! Стучись на аську - все обсудим и обговорим, а сюда я уже конечный вариант выложу и все... Согласен?

esergey 06.06.2004 20:26

Насчет тона я не сильно понял. Вроде ничего ругательного, унизительного в моих словах не было.
Я вроде с тобой не ссорился, чтобы устраивать мировую.
Люди пусть рассудят кто прав, кто нет. Я что-то в этом цирке ничего не понимаю.
Мне надо полностью переделанный скрипт, с описанием того что он делает. За это я плачу 10 wm.
А тебе Hubbitus, БОЛЬШОЕ СПАСИБО.

Кстати, насмешки идут именно с твоей стороны. В течение всего топика.

Hubbitus 07.06.2004 05:38

Вложений: 1
Судя по последнему посту, по вполне приемлемому тону, а не оскорблениям делаю вывод ято я сильно погорячился.... чтож, прошу прощения...:oops:

Но меня очень покоробило приказание твое
Цитата:

esergey:
1. Переделать надо.
Цитата:

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

esergey:
Люди пусть рассудят кто прав, кто нет. Я что-то в этом цирке ничего не понимаю.
Ну если хочешь, то пусть рассудят... Только надо ли? Может лучше вообще все это стереть и забыть? :beer:
Цитата:

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



Ах, да. Вобщем, скрипт в аттаче, полностью все.
Правда еще раз подчеркну что сделано все ОЧЕНЬ через одно место, потому что старался приблизить к исходному, а на PHP подобное можно было сделать гораздо проще и лучше, при условии нормально поставленной задачи конечно.
С оплатой сам решай.

Что он делает я вроде объяснял, построчно сдесь на форуме я расписывать не буду. А вообще могу посимвольно, теперь уже хоть тот, хоть другой код....
Ты писал что сам знаешь PHP, дак можешь просто посмотреть, а я тебе объясню что не понятно...
Ты на аську так и не постучался, ну не хочешь - как хочешь.

Hubbitus 08.06.2004 21:47

Ну хоть бы слово ответил, нормально или как?

esergey 08.06.2004 22:46

Ошибок в скрипте хватает (мелких). Пришлось потратить некоторые время на их исправление. Но ты мне очень помог, так как я понял суть скрипта, для чего он предназначен.
Деньги переведены.

Одна из оставшихся недоделок над которой я щас ломаю голову: как из url выделить имя домена, например из http://www.imho.ws/sho надо выделить imho.

Sheryld 09.06.2004 00:55

примерно так:
Код:

preg_match("/(http:\/\/)?(([a-zA-Z0-9]+\.)?([a-zA-Z0-9]+)\.[a-zA-Z]{2,4})/i","http://www.php1.net/index.html", $matches);
        echo $matches[4]; echo "<BR>";

        preg_match("/(http:\/\/)?(([a-zA-Z0-9]+\.)?([a-zA-Z0-9]+)\.[a-zA-Z]{2,4})/i","http://php2.net/index.html", $matches);
        echo $matches[4]; echo "<BR>";

        preg_match("/(http:\/\/)?(([a-zA-Z0-9]+\.)?([a-zA-Z0-9]+)\.[a-zA-Z]{2,4})/i","http://sub1.3php.net/index.html", $matches);
        echo $matches[4]; echo "<BR>";

        preg_match("/(http:\/\/)?(([a-zA-Z0-9]+\.)?([a-zA-Z0-9]+)\.[a-zA-Z]{2,4})/i","http://1sub2.mydomen12.info/index.html", $matches);
        echo $matches[4]; echo "<BR>";

        preg_match("/(http:\/\/)?(([a-zA-Z0-9]+\.)?([a-zA-Z0-9]+)\.[a-zA-Z]{2,4})/i","http://23eaitswork1.info/index.html", $matches);
        echo $matches[4]; echo "<BR>";

результаты у меня получились такие:

Код:

php1
php2
3php
mydomen12
23eaitswork1


Hubbitus 10.06.2004 04:55

2esergey:
Все ошибки могу исправить, я действительно практически не тестировал.... (стучись в приват, наверное... можешь на аську, или по почте...)
Я рад что ты понял суть... я вот ее до конца так и не понял!!! (например, зачем все так сложно делать).
За деньги спасибо.
Ну на вопрос тебе уже ответиили...

esergey 10.06.2004 22:14

Ошибки я сам исправил (мелкие типа нет кавычек).
А скрипт на перле писал не я - ответить не могу, зачем все так сложно.
Суть - заменяет в шаблоне переменные, определенными значениями. То есть можно отдельно отредактировать счетчик или заголовок, а они в шаблоне поменяются.

Sheryld 10.06.2004 23:52

шаблоны.

вот мой элементарный класс работы с шаблонами на php(точнее каркас, который потом можно дополнить всем необходимым):

Код:

<?
        class CTemplate
        {
                var $arrTemplates = array(); // array for template files
               
                var $strParsedTemplate = "";
               
                var $strTemplateRootPath = "templates";
                var $strExt = "txt";
                var $strTagLimiter = "%";
               
                var $strTemplateName = "";
               
                var $arrTags = array(); // arry for tags
               
                function voidLoadTemplate($strFileName)
                {
                        //clear varibles(this funcion for single template)
                        unset($this->arrTemplates);
                        unset($this->strTemplateName);
                       
                       
                        $arrMatches = array();
                        $strFilePath = $this->strTemplateRootPath . "/" . $strFileName . "." . $this->strExt;
                       
                       
                        if (!file_exists($strFilePath))
                        {
                                echo "Error. File: <B>" . $strFilePath . "</B> not found\r\n";
                                exit();
                        }
                       
                        $this->strTemplateName = $strFileName;
                       
                        $this->arrTemplates[$this->strTemplateName]['CONTENT'] = $this->strGetContent($strFilePath);
                        $this->arrTemplates[$this->strTemplateName]['PARSED'] = false;
                       
                       
                        //preg_match("/\w+\/(\w+\.$this->strExt)/i",$strFilePath,$arrMatches);
                       
                        //$strTemplateName = substr($arrMatches[1],0,(strlen($arrMatches[1])-(strlen($this->strExt)+1)));
                       
                        /*echo "<PRE>\r\n";
                        print_r($this->arrTemplates);
                        echo "</PRE>\r\n";
                        */
                       
                                       
                }
               
                function voidLoadTags()
                {
                        $arrTagsMatchesTemp = array();
                        $arrTagsMatches = array();
                       
                        if (!empty($this->arrTemplates[$this->strTemplateName]['CONTENT']))
                        {
                                preg_match_all("/$this->strTagLimiter(\w+)$this->strTagLimiter/i",
                                $this->arrTemplates[$this->strTemplateName]['CONTENT'],
                                $arrTagsMatchesTemp);
                               
                               
                                if (!empty($arrTagsMatchesTemp))
                                {
                                        foreach( $arrTagsMatchesTemp[1] as $TagName)
                                        {
                                                $arrTagsMatches[$TagName] = "";
                                        }
                                       
                                        $this->arrTemplates[$this->strTemplateName]['TAGS'] = $arrTagsMatches;
                                       
                                }
                               
                                /*$this->arrTemplates[$this->strTemplateName]['TAGS']['TITLExxxx'] = 'mytitle';
                               
                                echo "<PRE>\r\n";
                                print_r($this->arrTemplates[$this->strTemplateName]['TAGS']);
                                echo "</PRE>\r\n";*/
                        }
                        else
                        {
                                echo "Error. File: <B>" . $this->strTemplateName . "</B> is empty.\r\n";
                                exit();       
                        }
                       
                        unset($arrTagsMatchesTemp);
                        unset($arrTagsMatches);
                }
               
                function strGetContent($strFilePath)
                {
                        return implode("",file($strFilePath));
                }
               
                function boolParseTemplate()
                {
                        $strTagName = "";
                        unset($this->strParsedTemplate);
                       
                        /*if ($this->arrTemplates[$this->strTemplateName]['PARSED'])
                        {
                                return true;
                        }*/
                       
                        if (!empty($this->arrTemplates[$this->strTemplateName]['CONTENT']) &&
                        !empty($this->arrTemplates[$this->strTemplateName]['TAGS']))
                        {
                               
                                $this->strParsedTemplate = $this->arrTemplates[$this->strTemplateName]['CONTENT'];
                               
                                foreach ($this->arrTemplates[$this->strTemplateName]['TAGS'] as $TagName => $TagValue)
                                {
                                        //$strTagName =  $this->strTagLimiter . $TagName . $this->strTagLimiter;
                                       
                                        $this->strParsedTemplate = str_replace($this->strTagLimiter . $TagName . $this->strTagLimiter,$TagValue,$this->strParsedTemplate);
                                       
                                        /*echo "<PRE>\r\n";
                                        print_r($this->arrTemplates[$this->strTemplateName]['CONTENT']);
                                        echo "</PRE>\r\n";*/
                                       
                                        //echo $this->strParsedTemplate;
                                }
                               
                                $this->arrTemplates[$this->strTemplateName]['PARSED'] = true;
                                return true;                               
                                       
                        }
                        else
                        {
                                echo "Error. File: <B>" . $this->strTemplateName . "</B> is empty.\r\n";
                                exit(0);
                        }
                       
                        return false;
                       
                }
                function voidViewTemplate()
                {
                        if ($this->arrTemplates[$this->strTemplateName]['PARSED'])
                        {
                                echo $this->strParsedTemplate;
                        }
                }
               
        }

?>


примеры использования:

Код:

$tempObj = new CTemplate();
   
     
  $tempObj->voidLoadTemplate("eshe");
   
  $tempObj->voidLoadTags();
   
  $tempObj->arrTemplates['eshe']['TAGS']['TITLE'] = "My Title test";
  $tempObj->arrTemplates['eshe']['TAGS']['CONTENT'] = "My Content test";
   
   
  $tempObj->boolParseTemplate();
   
  $tempObj->voidViewTemplate();
   
  $tempObj->arrTemplates['eshe']['TAGS']['TITLE'] = "My Title test111";
  $tempObj->arrTemplates['eshe']['TAGS']['CONTENT'] = "My Content test111";
   
  $tempObj->boolParseTemplate();
   
  $tempObj->voidViewTemplate();

сами шаблоны выглядят так:

start_template===>

<TITLE>
%TITLE%
</TITLE>
<DIV>
%CONTENT%
</DIV>

<====end_template

т.е. по сути это обычный HTML со спец. тегами.

Hubbitus 10.06.2004 23:54

Ну кавычки, там где их у меня небыло, в принципе и не обязательны... стиля там никакого в файле, для скорости проставить можно конечно...

Эта суть реализовывается на SSI (лучше с использованием MySQL) в пяток строк! :)
Если надо, могу написать и/или помочь в написании.


Часовой пояс GMT +4, время: 00:05.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.