Замена знаков ударения

Wise_Fox

Новичок
Приветствую вас, дружественная форма жизни!

Условие. Есть текст с расставленными знаками ударения в словах.
Вопрос. Как при помощи магии PHP/JS убрать эти знаки ударения, а потом вернуть их на прежние места?
 

baev

‹°°¬•
Команда форума
Чё?
То «знаки ударения», то «знаки переносов» — Вы бы определились сначала.

И смысл в убирании/расставлении какой?
 

Wise_Fox

Новичок
Тьфу...знаки ударения конечно!
Смысл в том, такая штука нужна для сайта по обучению великому и могучему русскому языку
 

Sufir

Я не волшебник, я только учусь
Всё равно не очень понятно зачем конкретно сначала резать, а затем вставлять знаки. Сохрани две копии строки с знаками и без... Но, можно как-то так: пройдись по строке, вырежи ударения и запомни их позиции. Потом, опять пройдись по строке, и верни знаки.
PHP:
$str = 'D\'oh! That purple fruit thing!';
$new_str = '';
for ($index = 0; $index < strlen($str); $index++) {
    if ( $str{$index} == "!" ) {
        $pos[] = $index;
    } else {
        $new_str .= $str{$index};
    }
}
// и обратно что-то в таком духе
$prev = 0;
$new_str = '';
foreach ( $pos as $position ) {
    $new_str .= substr( $str, $prev, $position ) . '!';
    $prev = $position;
}
Но вполне возможно, что этого делать тебе и не нужно. А задачу "обучения великому и могучему" можно решить как-то правильнее.
 

Wise_Fox

Новичок
Все просто: текст хранится с уже проставленными знаками ударения, а народу хочется зрелищ в виде кнопочки "stress on/stress off", чтобы можно было выключить и включить ударения. За вариант спасибо - мысли у меня были подобные, но я думал, что есть уже что - то более шустрое на JS
 

zerkms

TDD infected
Команда форума
Все просто: текст хранится с уже проставленными знаками ударения, а народу хочется зрелищ в виде кнопочки "stress on/stress off", чтобы можно было выключить и включить ударения. За вариант спасибо - мысли у меня были подобные, но я думал, что есть уже что - то более шустрое на JS
А указанный код "не шустрый"? С чего ты взял?
 

Wise_Fox

Новичок
шустрый конечно. но придется делать AJAX запрос для того, чтобы на лету менять знаки.
 

zerkms

TDD infected
Команда форума
Wise_Fox
Что мешает абсолютно то же самое проделать на js?
 

Sufir

Я не волшебник, я только учусь
народу хочется зрелищ
А, ну, если это только для зрелищ, то можно ещё проще - какой-нибудь не отображающийся управляющий символ использовать не по назначению:
PHP:
echo $str = 'D\'oh! That purple fruit thing! Where were you yesterday?<br>'; 

$str = str_replace( "!", "\0", $str);
echo $str;

$str = str_replace( "\0", "!", $str);
echo $str;
В JS не особенно разбираюсь, но думаю, что и там это не намного сложнее.
 
Сверху