[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с скриптом автозамены в скрипте
GET
Здравствуйте, столкнулся с такой проблемой

ИСХОДНЫЙ СКРИПТ:

$l=file_get_contents("nachalo.php");
$s="Пиво.";
$str=ereg_replace("ZZZ_1",$s,$l);
file_put_contents("proba.php",$str);


Скрипт в котом ищем замену:
nachalo.php

if ($drug=="drugaya")
{
print ("ZZZ_1");
}
else
{
print ("#2");
}


В результате вместо Пиво получаем - пробелы " ", но если вместо Пиво написать BEER, то все получается!
Не меняет чисто кириллицу, как побороть???



Спустя 2 минуты, 12 секунд (20.09.2010 - 11:30) ABC написал(а):
Пробывал STR_replace проблема та же!

Спустя 26 минут, 3 секунды (20.09.2010 - 11:56) ABC написал(а):
На входе: $s="Пиво-BEER-пивО";

на выходе: $s="-BEER-";

Кодировка: WIN - 1251

c

	$fh = fopen("proba.php", "a+"); 
fwrite($fh, $str);


тоже не прокатывает

Спустя 23 минуты (20.09.2010 - 12:19) ABC написал(а):
setlocale(LC_ALL, 'russian');

не помогает

Спустя 15 минут, 37 секунд (20.09.2010 - 12:34) Семён написал(а):
Не буду вдаваться в подробности ваших скриптов.
Единственно посоветую.

1) Написать код для начала весь в 1-ом файле.

Например так:
ob_start();
if ($drug=="drugaya") {
print ("ZZZ_1");
}
else {
print ("#2");
}
$return = ob_get_contents();
ob_end_clean();

$s="Пиво.";
$str=str_replace("ZZZ_1",$s,$return);

echo $str; //Содержит изменённую строку


Но вот только вывода не будет, т.к. у вас нет переменной $drug
Поставим её и всё заработает.
ob_start();
$drug="drugaya";
if ($drug=="drugaya") {
print ("ZZZ_1");
}
else {
print ("#2");
}
$return = ob_get_contents();
ob_end_clean();

$s="Пиво.";
$str=str_replace("ZZZ_1",$s,$return);

echo $str;


Разбирайтесь с логикой товарищ
Я проверил мой выше приведённый скрипт, всё работает.

Спустя 12 минут, 16 секунд (20.09.2010 - 12:47) ABC написал(а):
Семён
Спасибо, за консультацию, но смысл как раз в том, что в этом скрипте происходит создание другого файла.
Как из кирпичиков копируются куски кода в файлах-шаблонах в которых заменяются нужные переменные и в конце концов объединяются в целый файл.

К тому же с ООП я еще особо незнаком. Неужели нет друго способа? Или хотя бы может быть вы знаете причину этого бага с кириллицей?

Спустя 1 минута, 48 секунд (20.09.2010 - 12:48) Семён написал(а):
A.B.C.
Блин, ща не поленюсь сделаю вам готовый архив.
Вы что не понимаете что у вас $drug переменной нет?! Чтобы её заменить на переменную с значением "Пиво?"

Ждите.

Спустя 7 минут, 24 секунды (20.09.2010 - 12:56) Семён написал(а):
Если у тебя и этот не будет менять содержимое, то я тут пасс. ибо терпения не хватит на тебя. Никаких багов с кириллицей нет! Вы сами создали проблему и пытаетесь обвинить в этом php.

1) index.php
$l=file_get_contents("nachalo.php");
$s="Пиво.";
$str=ereg_replace("ZZZ_1",$s,$l);
file_put_contents("proba.php",$str);


2) nachalo.php

if ($drug=="drugaya") {
print ("ZZZ_1");
}
else {
print ("#2");
}


3) и не забудем пустой файл proba.php

Спустя 3 минуты, 37 секунд (20.09.2010 - 12:59) Семён написал(а):
И ещё строго рекоммендую заменить ereg_replace на str_replace

Спустя 5 минут, 14 секунд (20.09.2010 - 13:05) ABC написал(а):
Семён
ЁЁЁкаранный бабай все работате, но почему!!??

переменная $drug, то тут при чем???...это же просто текст внутри который просматривается и заменяется....ему блин не все равно, какие там переменные может ам вообще цитаты из книги???...

я не пойму как работает...Семен поясни..плиз..

Спустя 2 минуты, 53 секунды (20.09.2010 - 13:08) ABC написал(а):
Я думал так php когда обрабатывает файл nachalo.php..он его внутренности сканирует как обычную (!) строку и меняет с ней то, что нужно, на то что нужно и все потом выдает обратно строкой...а я эту строку записываю в файл????

Спустя 1 минута, 9 секунд (20.09.2010 - 13:09) Семён написал(а):
На фокусы что-ли похоже ? cool.gif
В первом случае нам нужна была переменная $drug (это пример с ob_start), в моём примере (что в архиве), можете её убрать. Т.к. забыл что file_get тащит содержимое, а не результат smile.gif)

Спустя 10 минут, 48 секунд (20.09.2010 - 13:20) ABC написал(а):
Семён
Скажи, по чему для скрипта есть разница содержимого копируемого файла...не могу этого понять...

Спустя 4 минуты, 37 секунд (20.09.2010 - 13:24) Семён написал(а):
A.B.C.
я тебя не понимать однако.

Спустя 9 минут, 16 секунд (20.09.2010 - 13:33) ABC написал(а):

$l=file_get_contents("nachalo.php");//вытаскиваем данные из файла
$s="Пиво.";
$str=ereg_replace("ZZZ_1",$s,$l);//производим замену
file_put_contents("proba.php",$str);// записываем в Ыфайл


Вы написали:
Вы что не понимаете что у вас $drug переменной нет?! Чтобы её заменить на переменную с значением "Пиво?"

Я не понимаю, какая разница есть она там или нет...он же просто посимвольно читает все что есть в файле...нашел комбинацию "ZZZ_1"...тупо заменил ее на "Пиво" ...Разве не так???...какая разница что там в скрипте..есть там перемнные или из вообще нет?

Спустя 1 минута, 44 секунды (20.09.2010 - 13:35) Семён написал(а):
Я же написал!
В первом случае нам нужна была переменная $drug (это пример с ob_start), в моём примере (что в архиве), можете её убрать. Т.к. забыл что file_get тащит содержимое, а не результат smile.gif)


Просто уберите себе переменную и не засирайте мозг этим вопросом! Ответ разницы нет.

Спустя 22 часа, 37 минут, 9 секунд (21.09.2010 - 12:12) ABC написал(а):
Спасибо smile.gif


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.