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

Форум PHP

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

 

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

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

тема: скрипт для замены символов в тексте
 
 автор: shrek   (02.01.2007 в 16:49)   письмо автору
 
 

Помогите пожалуйста сделать сккрипт для замены символов в тексте. Например я вставляю текст с латышской кодирокой. я хочу чтобы буквы A, I, E с чёрточкой на верху и т. д. заменились символами &#...; Вот так как на сайте http://www.seleckis.lv/scripts/lat-2-w1257/index.php

   
 
 автор: Alph[p]a   (02.01.2007 в 17:06)   письмо автору
 
   для: shrek   (02.01.2007 в 16:49)
 

str_replace();

   
 
 автор: NIK   (02.01.2007 в 17:07)   письмо автору
 
   для: shrek   (02.01.2007 в 16:49)
 

обычно создаются 2 массива - в одном буквы, в другом их эквиваленты и заменяются функцией str_replace (или str_ireplace). Это конечно же геморройно, так что есть смысл поискать готовый скрипт или ф-ию

   
 
 автор: shrek   (02.01.2007 в 20:38)   письмо автору
 
   для: NIK   (02.01.2007 в 17:07)
 

большое спасибо, это я зделал вот толко осталась одна проблема...

index.php

<FORM ACTION="translit.php" METHOD="POST">
<br>
<br>
<br>
<center><INPUT TEXTAREA cols=100 rows=20 NAME="msg" MAXLENGTH="1000">
<br>
<br>
<INPUT TYPE="Submit" VALUE="Convert">
</FORM>


translit.php

<?php
if (empty($error)) // если ошибок нет, обрабатываем сообщение
  
{
$msg str_replace("a(с черточкой наверху)","&#257;",$msg);
$msg str_replace("e(с черточкой наверху)","&#275;",$msg);
}

?>

<br>
<br>
<br>
<td>
<center><textarea class=input name="msg"  cols="75" rows="20" ><?= $msg ?>
</textarea>
</td>
</body>
</html>



Я задал исходные буквы с черточкой наверху чтобы вывел &#257; ,а выводит тоже самое! вот например вот здесь когда пишешь &#257; это значение, он не выводит букву! как можно сделать подскажите?

   
 
 автор: Trianon   (03.01.2007 в 00:12)   письмо автору
 
   для: shrek   (02.01.2007 в 20:38)
 

<?
$msg 
$_POST['msg'];
if(
get_magic_quotes_gpc()) $msg stripslashes($msg);
$out ''$len strlen($msg);
for(
$i 0$i $len$i++)
{
  
$chr $msg[$i];
  
$ord ord($chr);
  
$out .= $ord >127 ? ("&#"."$ord") : $chr;
}
echo 
htmlspecialchars($out);

?>

   
 
 автор: shrek   (03.01.2007 в 03:51)   письмо автору
 
   для: Trianon   (03.01.2007 в 00:12)
 

Trianon огромный тебе THX всё супер workaet :)

   
 
 автор: Unkind   (02.01.2007 в 20:46)   письмо автору
 
   для: NIK   (02.01.2007 в 17:07)
 

обычно создаются 2 массива - в одном буквы, в другом их эквиваленты и заменяются функцией str_replace
Вот, кстати, не обязательно. Когда я делал свою iconv-функцию (если библиотека iconv не устновлена, то вызывалась моя), то str_replace делал мне какую-то чушь при переводе из UTF-8 в Windows-1251, а вот strtr() работал отлично.

   
 
 автор: shrek   (02.01.2007 в 21:05)   письмо автору
 
   для: Unkind   (02.01.2007 в 20:46)
 

Это типо надо str_replace заменить на strtr? у меня все равнно ничего не выходит...

   
 
 автор: NIK   (02.01.2007 в 21:58)   письмо автору
 
   для: shrek   (02.01.2007 в 21:05)
 

Unkind, я никаких библиотек не писал, поэтому чисто теоретически подсказал :)

> ничего не выходит...

будь внимательнее с регистром - для str_replace(); A и a не одно и тоже. Если PHP версии 5, то попробуй str_ireplace(); ИМХО эта функция в самы раз

   
 
 автор: Unkind   (02.01.2007 в 22:05)   письмо автору
 
   для: NIK   (02.01.2007 в 21:58)
 

я никаких библиотек не писал
Я тоже. Вы меня не поняли.

   
Rambler's Top100
вверх

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