Реклама на сайте Advertise with us

Подскажите по написанию кода

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 26/10/11 в 13:42       Ответить с цитатойцитата 

В ПХП не силен, иногда что то простенькое могу сделать. Тут нужна вот такая штуковина.
есть текстовый файлик в котором построчно написаны данные:
DATA1|DATA2|DATA3|DATA4|DATA5|DATA6|DATA7
DATA1|DATA2|DATA3|DATA4|DATA5|DATA6|DATA7
DATA1|DATA2|DATA3|DATA4|DATA5|DATA6|DATA7
DATA1|DATA2|DATA3|DATA4|DATA5|DATA6|DATA7
кажда строка со своими данными
Мне нужно чтоб скрипт геренировал страницы по принципу
создает .shtml страницу и в определенные места вставляет эти данные.
Как я понимаю, мне нужно создать шаблон, отметить места в шаблоне чтоб скрипт знал куда вставлять ту или иную переменную. Но как это все собрать воедино не имею понятия. Подскажите в какую сторону рыть. Порой приходиться пару десятков страниц делать, а вручную это очень долго, да и обязательно где то да пропустишь что нибудь.
Вобщем буду благодарен любым подсказкам по теме.

Push Траф для Арбитража : Раз | Два
Есть СНГ траф? Лей сюда!

0
 

full-plastic programmist

С нами с 05.09.03
Сообщения: 8361
Рейтинг: 4779

Ссылка на сообщениеДобавлено: 26/10/11 в 13:48       Ответить с цитатойцитата 

сейчас как раз что то подобное делаю.
там все элементарно на самом деле, если ты не умолчал о каких либо тонкостях icon_smile.gif
скинь пример в личку (или тут опиши) какая например страница и куда что вставляется.
я правильно понял что по каждой строчке своя страница генерится?

вот соскучился по мастеру...

6
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 26/10/11 в 17:05       Ответить с цитатойцитата 

да легко, делается шаблон со вставкой в нужных местах {DATA1}...{DATA7}
затем этот шаблон читается через
$content = file_get_contents('shablon.html');
и делается простая замена через
$content = str_replace('{DATA1}', 'DATA1', $content);
...
$content = str_replace('{DATA7}', 'DATA7', $content);
соответственно DATA1...DATA7 распарсивается со строки через explode trollface.png

6
 

full-plastic programmist

С нами с 05.09.03
Сообщения: 8361
Рейтинг: 4779

Ссылка на сообщениеДобавлено: 26/10/11 в 17:16       Ответить с цитатойцитата 

icon_smile.gif

вот соскучился по мастеру...

6
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 26/10/11 в 17:51       Ответить с цитатойцитата 

Нафига такие извращения? str_replace массивы принимает. А у регулярных так вообще - безлимит.

Код:

$raws = explode(...);

$html = preg_replace('/\{DATA([0-9]+)\}/ei', "\$raws['$1']", $content);


ibiz писал:
Осталось 1590 часов

До Нового года?
Тоже очень жду smail54.gif

6
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 26/10/11 в 18:18       Ответить с цитатойцитата 

gimcnuk писал:
Нафига такие извращения? str_replace массивы принимает. А у регулярных так вообще - безлимит.


учитывал trollface.png
Цитата:
В ПХП не силен, иногда что то простенькое могу сделать.

соответственно регулярки понимать сложнее smail101.gif
у меня тут студенты обучаются и не с первого раза понимают функцию array_chunk, хотя казалось бы чего тут непонятного? trollface.png

6
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 26/10/11 в 19:59       Ответить с цитатойцитата 

всем спасибо smail54.gif

Push Траф для Арбитража : Раз | Два
Есть СНГ траф? Лей сюда!

0
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 30/10/11 в 07:22       Ответить с цитатойцитата 

Ну вот что получилось:
Код: [развернуть]


Создается файл в него подставляются значаения из $massiv.
Стал пробовать усложнить задачу. И заставить всё это дело работать с файлом, т.е. чтоб данные из фала, в котором записано
imyafaila1|vstavka1|vstavka2|vstavka3|vstavka3
imyafaila2|vstavka1|vstavka2|vstavka3|vstavka3
imyafaila3|vstavka1|vstavka2|vstavka3|vstavka3
построчно читались и заносились в массив, ну и скрипт работал по принципу:
читает первую строку из файла, заносит ее в массив, создает файл imyafaila1, в него копирует шаблон с уже заменами, закрывает файл.
читает вторую строку создает imyafaila2, в него копирует шаблон с уже заменами, закрывает файл. и т.д.
вчера попробовал заменить уже готовую строку массива $massiv на обращение к файлу и чтение его в массив, затем с помощью цикла foreach, пройтись по массиву и сделать то что описал выше, но что то видемо не так делаю. Подтолкните на правильный путь пожалуйста, не прошу написать сам код, просто подскажите что не так делаю. Есть еще вопросики, но они сейчас не так важны.
Всем за помощь как обычно +6
За ранее благодарен. Чет увлек меня ПХП, может так потихоньку научусь делать что то полезное. А то в мелочах еще более менее разбираюсь, а вот что по серьезнее и появляются сложности.

Push Траф для Арбитража : Раз | Два
Есть СНГ траф? Лей сюда!

0
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 30/10/11 в 08:07       Ответить с цитатойцитата 

1.txt:
imyafaila1|vstavka1|vstavka2|vstavka3|vstavka3
imyafaila2|vstavka1|vstavka2|vstavka3|vstavka3
imyafaila3|vstavka1|vstavka2|vstavka3|vstavka3


Код: [развернуть]

пришел к победе коммунистического труда

6
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 30/10/11 в 08:12       Ответить с цитатойцитата 

кстати что это за муть
$html = preg_replace('/\{DATA([0-9]+)\}/ei', "\$data['$1']", $content);
я так и не понял.
но решил не трогать smail101.gif

пришел к победе коммунистического труда

6
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 30/10/11 в 08:13       Ответить с цитатойцитата 

В foo.txt:
imyafaila1|vstavka1|vstavka2|vstavka3|vstavka3
imyafaila2|vstavka1|vstavka2|vstavka3|vstavka3
imyafaila3|vstavka1|vstavka2|vstavka3|vstavka3

Код:
$content = file_get_contents('face.tpl');
$lines = file('foo.txt');
$count = count( $lines );
for( $i = 0; $i < $count; $i += 1 ) {
   $data = explode( '|', $lines[ $i ] );
   if( ! file_put_contents( $data[0].'.txt', preg_replace( '/\{DATA(\d+)\}/ei', "\$data['$1']", $content ) ) )
      die( "can't open file" );
}


Цитата:
Чет увлек меня ПХП, может так потихоньку научусь делать что то полезное. А то в мелочах еще более менее разбираюсь, а вот что по серьезнее и появляются сложности.

Что-то "серьёзное" на голом пхп мало кто пишет. Поставь какой-нибудь фреймворк. Изучи его. И будет тебе счастье.

Рекомендую Kohana + Jelly + Twig как достойную базу для средних проектов или мегатехнологичный Fat Free Framework для мелких.

icon_smile.gif

5
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 30/10/11 в 11:52       Ответить с цитатойцитата 

FXIX писал:
кстати что это за муть
$html = preg_replace('/\{DATA([0-9]+)\}/ei', "\$data['$1']", $content);
я так и не понял.
но решил не трогать smail101.gif

А чего непонятного?
Заменяет все {DATA1}, {DATA2}, ... на значения $data[1], $data[2], ...

0
 

Я держусь там. Счастья мне, уд

С нами с 24.05.05
Сообщения: 16096
Рейтинг: 219

Ссылка на сообщениеДобавлено: 30/10/11 в 15:49       Ответить с цитатойцитата 

капец ) Генерилку галерей на коленке )

Здесь не место для бесед: грохот на пределе
Как при старте ста ракет, как девятый вал

0
 

no sign

С нами с 25.07.03
Сообщения: 3623
Рейтинг: 1403

Ссылка на сообщениеДобавлено: 30/10/11 в 15:53       Ответить с цитатойцитата 

Yacc писал:
Что-то "серьёзное" на голом пхп мало кто пишет. Поставь какой-нибудь фреймворк. Изучи его. И будет тебе счастье.


то есть ради кроновского скрипта или демона ты будешь фреймворк юзать? ))
а заметь - backend это как раз и есть обычно именно самое серьезное в нужном месте )

skype:megaarachno

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 30/10/11 в 16:25       Ответить с цитатойцитата 

Человек научиться хочет. На "кроновских" скриптах не научишься. По-крайней мере ничему хорошему точно. icon_smile.gif

0
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 30/10/11 в 16:26       Ответить с цитатойцитата 

вобще даже эта генерилка, очень полезная вещица, попробую еще разными вещами ее доработать, за одно паралельно и разбираюсь потихоньку что да как. Порой конечно х.з. правильно делаю или нет, но работает. Знать бы еще правила и что да как должно.
Вобще всем спасибо ща помощь и советы.
Кстати еще интересно стало, вот по этой строке
Код: [развернуть]

Это всё работает при условии если я буду в шаблон вставлять
{DATA1}{DATA2}...{DATA7}
а если хочу вставлять {meta_title}{meta_description}{text}
тут уже такая вещь с регуляркой не пройдет.
За регулярку огромное спасибо!!!
Вот собственно добавил еще момент (при создании файла, куда будет добавляться заполненый шаблон, в его имени удаляю пробелы и заменяю его на "-")
Вот думаю все это дело организовать через форму.
В ХТМЛ уже сделал исходник, форма для данных, выбор типа генерируемой страницы и выбор сепаратора который делит данные в массиве.
Вот примерно то что сейчас есть:
Код: [развернуть]

Push Траф для Арбитража : Раз | Два
Есть СНГ траф? Лей сюда!

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 30/10/11 в 17:14       Ответить с цитатойцитата 

Код:
<?php

$content = file_get_contents('face.tpl');
$extension = '.php';
$lines = file('data.txt');
$count = count( $lines );

for( $i = 0; $i < $count; $i += 1 ) {
    $data = explode( '|', $lines[ $i ] );
    $file_name = preg_replace( '/\s+/', '-', trim( $data[0] ) ).$extension;
    if( ! file_put_contents( $file_name, preg_replace( '/\{DATA([0-9]+)\}/ei', "\$data['$1']", $content ) ) )
       die( "can't open file" );
}

?>


Мелочи, а приятно. icon_smile.gif

5
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 30/10/11 в 18:25       Ответить с цитатойцитата 

gimcnuk писал:
А чего непонятного?
Заменяет все {DATA1}, {DATA2}, ... на значения $data[1], $data[2], ...

а ну да. просто в первом посте глянул

DATA1|DATA2|DATA3|DATA4|DATA5|DATA6|DATA7
DATA1|DATA2|DATA3|DATA4|DATA5|DATA6|DATA7
DATA1|DATA2|DATA3|DATA4|DATA5|DATA6|DATA7
DATA1|DATA2|DATA3|DATA4|DATA5|DATA6|DATA7

пришел к победе коммунистического труда

0
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 31/10/11 в 08:22       Ответить с цитатойцитата 

Lexikon писал:
Кстати еще интересно стало, вот по этой строке
Код: [развернуть]

Это всё работает при условии если я буду в шаблон вставлять
{DATA1}{DATA2}...{DATA7}
а если хочу вставлять {meta_title}{meta_description}{text}
тут уже такая вещь с регуляркой не пройдет.


Код:

$html = preg_replace('/\{([a-z0-9_]+)\}/ei', "\$raws['$1']", $content);

{meta_title}{meta_description}{text} меняет на $raws['meta_title'] и т.д.

Ну или
Код:

$html = preg_replace('/\{(\w+)\}/e', "\$raws['$1']", $content);

5
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 01/11/11 в 19:55       Ответить с цитатойцитата 

Попытался сделать это все через форму а не через файл, частично вышло, но столкнулся с проблемой:
Форма
Код: [развернуть]

Скрипт
Код: [развернуть]

Немогу сообразить как правильно передать данные из формы в скрипт обработчик, чтоб все работало как с чтением из файла.
Код: [развернуть]


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

Push Траф для Арбитража : Раз | Два
Есть СНГ траф? Лей сюда!

0
 

readmode

С нами с 24.05.06
Сообщения: 797
Рейтинг: 488

Ссылка на сообщениеДобавлено: 01/11/11 в 20:05       Ответить с цитатойцитата 

Lexikon: пиши данные из формы в файл, а из файла уже читай trollface.png

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 01/11/11 в 20:54       Ответить с цитатойцитата 

Код:
<?php

$content = file_get_contents('face.tpl');
$lines = explode( "\n", $_POST[ 'exdata' ] );
$count = count( $lines );

for( $i = 0; $i < $count; $i += 1 ) {
   $data = explode( $_POST['seperated'], $lines[ $i ] );
   $file_name = preg_replace( '/\s+/', '-', trim( $data[0] ) ).'.'.$_POST['type'];
   if( ! file_put_contents( $file_name, preg_replace( '/\{DATA([0-9]+)\}/ei', "\$data['$1']", $content ) ) )
      die( "can't open file" );
}

?>


Надеюсь ты эту форму всем желающим открывать не собираешься. icon_smile.gif

6
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 01/11/11 в 20:59       Ответить с цитатойцитата 

smail101.gif нет
это для себя на локалке генерить, она ведь совершенно голая, зачиты и проверки ни какой.

Push Траф для Арбитража : Раз | Два
Есть СНГ траф? Лей сюда!

0
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 01/11/11 в 21:23       Ответить с цитатойцитата 

Yacc писал:
Код:
<?php
if( ! file_put_contents( $file_name, preg_replace( '/\{DATA([0-9]+)\}/ei', "\$data['$1']", $content ) ) )
      die( "can't open file" );
}

?>



Цитата:
The function returns the number of bytes that were written to the file, or FALSE on failure.

пришел к победе коммунистического труда

6
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 01/11/11 в 21:30       Ответить с цитатойцитата 

это ты к чему???

Push Траф для Арбитража : Раз | Два
Есть СНГ траф? Лей сюда!

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »