Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Помощь Даром!
цитата
23/08/13 в 01:16
 Дартаньян
Всем привет, помогу за спасибо icon_cool.gif , а именно напишу скрипт на php, python или помогу с вопросом по серваку.
цитата
23/08/13 в 03:37
 fihorn
с чего такая щедрость?
цитата
23/08/13 в 23:23
 Дартаньян
Просто так, дела наладились, да и пофану покодить.
цитата
23/08/13 в 23:47
 Stek
Охота покодить - фантастика smail101.gif

По питону, если не решение, то консультация на логику исполнения.
Есть django-cms . Нужна фидбак форма, отсылающая майл юзеру и админу.
Но ... форма может быть вставлена на разные страницы, и с каждой страницы форма шлет разный текст.

Т.е. как представляю, надо как то привязать модель к адресу страницы, и модели уже указывать, какие тексты на той или иной странице. Но как сделать привязку - не представляю.

Пока вижу только решение задавать в модели адрес страницы и регекспом вытягивать соответствующий. Модель соответственно через django управляется в админке.

Или если выше сказанное бред, то какое наиболее простое решение задачи ?
цитата
27/10/14 в 19:05
 MattCutts
Привет!

Напиши, пожалуйста, скриптик (уверен, кому-нибудь ещё пригодится): batch rearch&replace по списку соответствия, т.е.

- Имеем папку с файлами, которые нужно обработать: позаменять слова по списку соответствия, который лежит допустим в файле search-replace.txt, а в нем:

apple|cherry
red|green
light|dark

и т.п. То есть заменяем огромный массив слов - 10-20к соответствий. Ну и сохранить куда угодно.

Спасибо.
цитата
29/10/14 в 05:13
 langust
мож тебе постоянная работа нужна ?
цитата
31/10/14 в 15:05
 Дартаньян
MattCutts: ок, файл с "найти|заменить" и папка с файлами в которых все это надо сделать?
цитата
31/10/14 в 15:06
 Дартаньян
langust: trollface.png возможно, а то панда 3 хорошо так нагнула.
цитата
31/10/14 в 15:07
 Дартаньян
Stek: я джангу юзал на 5 курсе, лет 8 назад. Я больше по ФЛАСКУ.
цитата
31/10/14 в 15:12
 Stek
Судя по скорости ответа, ты больше по транквилизаторам smail101.gif
цитата
31/10/14 в 15:17
 Дартаньян
Stek: trollface.png сори, я помню этот вопрос но мне показалось ты мне его в аську или жабу писал.
цитата
31/10/14 в 18:12
 MattCutts
Дартаньян писал:
MattCutts: ок, файл с "найти|заменить" и папка с файлами в которых все это надо сделать?


Не понял вопроса. Эти две вещи уже есть: папка с обрабатываемыми файлам и файлик с правилами замены. Суть в том, что файлик замены может быть очень большим, например, пару мегабайт - это дофига замен, учитывая, что нужно пройтись по всем файлам из папки.
цитата
01/11/14 в 01:12
 langust
Stek писал:
Судя по скорости ответа, ты больше по транквилизаторам smail101.gif


врятли. они держат совсем недолго. делаю ставку на нейролептики )
цитата
01/11/14 в 01:26
 Дартаньян
MattCutts: не проблема, будет тебе завтра главное чтоб оперативки хватило.
langust: ну практически, фезамы там всякие и прочее ноотропы.
цитата
01/11/14 в 14:25
 Дартаньян
MattCutts:
Пробуй, но бекап рекомендую сделать малоли что не так.
запускаешь так python file.py key.txt /tmp/dir/


#!/usr/bin/env python2.7
#-*- coding: utf-8 -*-

import sys, os

rkeys = [(x.strip().split("|")) for x in open(sys.argv[1])]

for ndir in os.listdir(sys.argv[2]):
        with open(sys.argv[2] + '/' + ndir, 'r') as rfile:
                data = "".join(rfile.readlines())
                for rkey in rkeys:
                        data = data.replace(rkey[0], rkey[1])
        with open(sys.argv[2] + '/' + ndir, 'w') as wfile:
                print data
                wfile.write(data)
                wfile.flush()
цитата
01/11/14 в 22:08
 Дартаньян
MattCutts: ты это напиши если все ок да репу +.
цитата
03/11/14 в 12:54
 Lexikon
пишу функцию для выдачи результата
имеем:
дамп
Код:

urlPage|image|lee|blue|men|classic
urlPage|image|lee|dark|men|strite
urlPage|image|lee|dark|men|classic
urlPage|image|lee|blue|women|boyfrend
urlPage|image|montana|dark|women|Slim
urlPage|image|montana|grey|women|kapri
urlPage|image|montana|darkblue|men|bootcut
urlPage|image|levis|red|women|original
urlPage|image|котопес|красный|детское|оригинал

массив категорий (который может потом меняться, ключи массива это поряджковый номер столбца дампа начиная с 0)
Код:

$arrayCategoryMenu       = array(2 => "brand#Бренд", 3 => "color#Цвет", 4 => "sex#Пол", 5 => "style#Стиль");

по средствам чекбоксов делаем запрос на выборку
в функцию отдаем многомерный массив пример
Код:
Array
(
    [2] => Array
        (
            [0] => lee
            [1] => montana
            [2] => levis
            [3] => котопес
        )

    [3] => Array
        (
            [0] => blue
            [1] => grey
        )

    [4] => Array
        (
            [0] => women
        )

    [5] => Array
        (
            [0] => strite
            [1] => boyfrend
        )

)


результат должен быть массив, элементы массива это строка или строки дампа
т.е. в данном случае это
Array
(
[0] => urlPage|image|lee|blue|women|boyfrend
)

вот такой код у меня получился на данным момент, так скажем наработки, но им можно выбирать только из одной категории либо, что-то из брендов, либо из цветов, стилей или пола.
function showResultSearch($arrayQuery, $pathFileDump){

   // $arrayQuery - массив запросов
   // $pathFileDump - путь к файлу дампа с данными

   $flag = 0;
   $resultArray = array();

   foreach ($arrayQuery as $keyCat => $arrQueryCat) {
      if (!empty($arrQueryCat)) {

   $flag++;

         foreach ($arrQueryCat as $queryCat) {

            $arrayDump = file($pathFileDump);


if ($flag <= 1){
            foreach ($arrayDump as $strDump) {
               $strDump = trim($strDump);
               $arrayStrDump = explode("|", $strDump);

               if ($arrayStrDump[$keyCat] == $queryCat) {
                  $resultArray[] = $strDump;
               }
            }         
}else{
            foreach ($resultArray as $strDump) {
               $strDump = trim($strDump);
               $arrayStrDump = explode("|", $strDump);

               if ($arrayStrDump[$keyCat] == $queryCat) {
                  $resultArray[] = $strDump;
               }
            }

}      
      



         }




      }
   }

echo "<pre>";
print_r($resultArray);
echo "</pre>";

}

каждая последующая выборка по категориям должна проходить уже из отфильтрованного массива данных, но т.к. предыдущее не удаляется, а остается получается некое наслоение и в результате неправильная фильтрация.
Так же хотелось сделать универсальную функцию, в том смысле, если кол-во категорий вырастет, чтоб не менять функцию.
Х.з. возможно ли это, но буду благодарен за помощь.
цитата
03/11/14 в 13:41
 MattCutts
Дартаньян писал:
MattCutts: ты это напиши если все ок да репу +.


Спасибо, бро! Сегодня протестирую на сервере.
цитата
03/11/14 в 16:11
 Дартаньян
Lexikon: ага, понял суть стукни в скайп или аську.
цитата
03/11/14 в 19:06
 Lexikon
вроде сделал.
Похоже, что первоначально стал подавать неправильно информацию, вынес один из циклов за пределы функции, и немного по другому сделал запрос в функцию и всё стало работать как нужно. Но надо еще потестить.
цитата
03/11/14 в 19:10
 Lexikon
сама функция:
Код:


function showResultSearch($arrQuerySubCategory, $keyCategory, $arrFileDump){

         foreach ($arrQuerySubCategory as $strNameSubCategory) {
            foreach ($arrFileDump as $strFileDump) {
               $strFileDump = trim($strFileDump);
               $arrStrFileDump = explode("|", $strFileDump);

               if ($strNameSubCategory == $arrStrFileDump[$keyCategory]) {
                  $resultArray[] = $strFileDump;
               }
            }
         }

         if (@!$resultArray) {
            $resultArray = array();

   return $resultArray;

         }else{

   return $resultArray;

         }

}



сам код где применяется эта функция

Код:

<?php

header("Content-Type: text/html; charset=UTF-8");

require_once("./functions.php");
require_once("./config.php");


//echo "<pre>";
//print_r(searchByDump($arrayCategoryMenu));
//echo "</pre>";

$arrayQuery = searchByDump($arrayCategoryMenu);

$arrFileDump = file($pathFileDump);

foreach ($arrayQuery as $keyCategory => $arrQuerySubCategory) {

   if (!empty($arrQuerySubCategory)) {

      $arrFileDump = showResultSearch($arrQuerySubCategory, $keyCategory, $arrFileDump);
   }

}

   if (empty($arrFileDump)) {
      echo "SORRY!";
   }else{
      echo "<pre>";
      print_r($arrFileDump);
      echo "</pre>";   
   }


?>
цитата
04/11/14 в 19:04
 Дартаньян
MattCutts: чё как? trollface.png
Lexikon: скину тебе чуть позже более компактный код, кстати почему бы не заюзать sed?
цитата
07/11/14 в 23:45
 Мачете
Помог чётко, спасибо чувак , удачи.
цитата
16/11/14 в 19:02
 Peper
помог подправить пару строк, спасибо icon_smile.gif
цитата
17/11/14 в 07:45
 Lexikon
что за мастурбатор в топике всех минусует smail101.gif
Стр. 1, 2, 3  >  последняя »


Эта страница в полной версии