Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите написать Скрипт-Переводчик
 
 автор: HerSystem   (29.03.2006 в 18:34)   письмо автору
 
 

Хочу написать скрипт, чтобы в ведёном тексте заменялись некоторы еслова, которые в базе(текстовой), А остальные оставались также. Базу разместить в других файлах.
Вот что пока намутил:
<?
$text
="сам текст на ошибки";
$rus = array ("текст""ошибка");
$eng = array ("текст - заменяющий его""ошибка - заменяющий его");
echo 
str_replace ($rus$eng$text);
?>


Как правильно разместить $rus и $eng в отдельных файлах, допустим в .txt?

Пробовал так:
<?
$text
="проверка самого текста на ошибки";
$rus file("rus.txt");
$eng file("eng.txt");
echo 
str_replace ($rus$eng$text);
?>


Но переводиться, только если в html форму ввести слова в стольбик! А так нет. Что делать?

   
 
 автор: cheops   (29.03.2006 в 18:57)   письмо автору
 
   для: HerSystem   (29.03.2006 в 18:34)
 

Оформите блок
<?php
  $rus 
= array ("текст""ошибка"); 
  
$eng = array ("текст - заменяющий его""ошибка - заменяющий его");
?>

в виде отдельного файла и присоединяйте его к другим файла при помощи конструкции require_once():
<?php
  
require_once("base.php");
  
$text="проверка самого текста на ошибки"
  echo 
str_replace ($rus$eng$text); 
?>

   
 
 автор: HerSystem   (29.03.2006 в 20:12)   письмо автору
 
   для: cheops   (29.03.2006 в 18:57)
 

А мысл? Я же хочу слова в отдельные файлы положить, чтобы удобнее было их редактировать, добавлять и так далее. Согласись это удобнее...

   
 
 автор: Loki   (29.03.2006 в 21:01)   письмо автору
 
   для: HerSystem   (29.03.2006 в 20:12)
 

Есть хорошая поговорка: программа делает то, что просит от нее пользователь, а не то что он хочет чтобы она сделала.
Собственно, какого вы поведения ожидали от функции file() и чем вы недовольны?

   
 
 автор: HerSystem   (29.03.2006 в 22:30)   письмо автору
 
   для: Loki   (29.03.2006 в 21:01)
 

Непонял? Что ты этим хотел сказать. Ты лудше помоги...

   
 
 автор: Akira   (30.03.2006 в 07:45)   письмо автору
 
   для: HerSystem   (29.03.2006 в 22:30)
 

Локи намекает на то, что file() выводит каждую новую строчку в качестве элемента массива.

   
 
 автор: HerSystem   (30.03.2006 в 12:21)   письмо автору
 
   для: Akira   (30.03.2006 в 07:45)
 

И что мне делать? Я чайник.

   
 
 автор: Loki   (30.03.2006 в 12:46)   письмо автору
 
   для: HerSystem   (30.03.2006 в 12:21)
 

продумать организацию данных. Не хотите в столбик - пишите в строчку, но тогда file() вам не помошник. Используйте file_get_contents, а потом explode

   
 
 автор: HerSystem   (30.03.2006 в 13:47)   письмо автору
 
   для: Loki   (30.03.2006 в 12:46)
 

Так я и хочу в столбик!!!
Может вы меня не правильно поняли:
Я хочу чтобы скрипт заменя слова(из файла) в тесте, который я введу.
Чтобы слова хранились в отдельных файлах(или файле). В столбик! Чтобы удобнее было их добавлять, редактировать.
Как мне осуществить чтение из файлов, чтобы скрипт переводи?


Наверняка вам всем известно... Это на мой взгляд просто, хотя я и не умею.

   
 
 автор: cheops   (30.03.2006 в 14:02)   письмо автору
 
   для: HerSystem   (30.03.2006 в 13:47)
 

Вероятно вам мешают Windows-переводы строк, модифицируйте ваш код следующим образом
<? 
  $text
="проверка самого текста на ошибки"
  
$rus file("rus.txt"); 
  foreach(
$i 0$i count($rus); $i++) $rus[$i] = trim($rus[$i]);
  
$eng file("eng.txt"); 
  foreach(
$i 0$i count($eng); $i++) $eng[$i] = trim($eng[$i]);
  echo 
str_replace ($rus$eng$text); 
?>

   
 
 автор: HerSystem   (30.03.2006 в 14:29)   письмо автору
 
   для: cheops   (30.03.2006 в 14:02)
 

Скопировал полностью твой код но он Ошибку выдаёт parse error, unexpected ';' в строке foreach($i = 0; $i < count($rus); $i++) $rus[$i] = trim($rus[$i]);
Что делать?

   
 
 автор: Trianon   (30.03.2006 в 14:42)   письмо автору
 
   для: HerSystem   (30.03.2006 в 14:29)
 

foreach поменять на for . Опечатка это.

   
 
 автор: HerSystem   (30.03.2006 в 15:04)   письмо автору
 
   для: Trianon   (30.03.2006 в 14:42)
 

Всё Спасибо всем кто помогал хоть как-то! Всё получилось!

   
 
 автор: DelbI4   (16.07.2006 в 09:19)   письмо автору
 
   для: HerSystem   (30.03.2006 в 15:04)
 

... разобрался ...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования