[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Замена одного выражение на другое
Елена
Здравствуйте, есть проблема, для замены одного выражения на другое есть str_replace(), но мне надо вот что. Есть текст: "Обязательным условием гарантированного успеха является полная отдача в работе и прохождение задание от начала и до конца, не останавливаясь на полпути." Предположим я не знаю этого текста и мне нужно найти в тексте выражение: "в работе и прохождении" и заменить на: "в работе или прохождении".
Игорь_Vasinsky
Цитата
Предположим я не знаю этого текста

Цитата
найти в тексте выражение: "в работе и прохождении"


нить логики беспощадно порвана.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
Обязательным условием гарантированного успеха является полная отдача в работе и прохождение задание от начала и до конца, не останавливаясь на полпути


найти в тексте выражение: "в работе и прохождении"

и заменить на: "в работе или прохождении".

если юникод - то вот 2 варианта, 1й предпочтительней в вашем случае.

<?php
$str = 'Обязательным условием гарантированного успеха является полная отдача в работе и прохождение задание от начала и до конца, не останавливаясь на полпути.';

$target = 'в работе и прохождение';
$replacement = 'в работе или прохождение';

echo strtr( $str, array($target=>$replacement));

echo preg_replace("#".$target."#u", $replacement, $str);
?>


а если дело в окончании, то

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
walerus
Игорь_Vasinsky
Обязательным условием гарантированного успеха, является полная отдача в работе и прохождение заданий от начала и до конца, не останавливаясь на полпути wink.gif

Игорь_Vasinsky
walerus
Цитата
заданий от начала и до конца,

на это мне пофиг - ни как под санкции не попадает.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Елена
Цитата (Игорь_Vasinsky @ 23.10.2014 - 12:55)
Обязательным условием гарантированного успеха является полная отдача в работе и прохождение задание от начала и до конца, не останавливаясь на полпути


найти в тексте выражение: "в работе и прохождении"

и заменить на: "в работе или прохождении".

если юникод - то вот 2 варианта, 1й предпочтительней в вашем случае.

<?php
$str = 'Обязательным условием гарантированного успеха является полная отдача в работе и прохождение задание от начала и до конца, не останавливаясь на полпути.';

$target = 'в работе и прохождение';
$replacement = 'в работе или прохождение';

echo strtr( $str, array($target=>$replacement));

echo preg_replace("#".$target."#u", $replacement, $str);
?>


а если дело в окончании, то

Да вы правы я немного не так выразилась, я ищу в тексте: "в работе (Здесь находится какое-либо слово или союз) прохождение" и если это предложение есть в тексте мне надо заменить его на: "в работе или прохождение"
Игорь_Vasinsky
ну выше 2 варианта есть. выбирайте.

preg_replace() - для более сложных ситуаций

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Елена
Цитата (Игорь_Vasinsky @ 23.10.2014 - 15:28)
ну выше 2 варианта есть. выбирайте.

preg_replace() - для более сложных ситуаций

Вы не так понели, те варианты мне не подходят, попробую объяснить по-другому: Пользователь вводит произвольный текст "Пример: Что такое $произвольное имя переменной = str_replace('&','&amp;',$произвольное имя переменной) ", скрипт должен вывести: "Что такое $произвольное имя переменной, которое ввел пользователь ранее = str_replace('&','&copy;',$произвольное имя переменной, которое ввел пользователь ранее) "
Надеюсь что на этот раз объяснила понятно
walerus
user posted image
Вы сами то поняли что написали? В начале топика Вы просите заменить "часть текста", но в Вашем примере ошибка, в "неизвестном предложении" и в "искомом слове", на что Вам Игорь_Vasinsky указал в ответе.

Его варианты относительно Вашей просьбы - верны, вот сам скрипт
<?php

## Предположим я не знаю этого текста
$unknown_text = 'Обязательным условием гарантированного успеха является полная отдача в работе и прохождение задание от начала и до конца, не останавливаясь на полпути.';

## найти в тексте "в работе и прохождение"
$find_text = 'в работе и прохождение';

## и заменить на: "в работе или прохождении".
$replace_text = 'в работе или прохождении';

echo "TEXT До изменения<br>\n";
echo $unknown_text . "<hr>\n";

$unknown_text_1 = strtr( $unknown_text, array( $find_text => $replace_text ) );
$unknown_text_2 = preg_replace("#" . $find_text . "#u", $replace_text, $unknown_text );

echo "TEXT После изменения, применяем `strtr`<br>\n";
echo $unknown_text_1 . "<hr>\n";

echo "TEXT После изменения, применяем `preg_replace`<br>\n";
echo $unknown_text_2 . "<br>\n";
die;
и его результаты

TEXT До изменения
Обязательным условием гарантированного успеха является полная отдача в работе и прохождение задание от начала и до конца, не останавливаясь на полпути.

TEXT После изменения, применяем `strtr`
Обязательным условием гарантированного успеха является полная отдача в работе или прохождении задание от начала и до конца, не останавливаясь на полпути.

TEXT После изменения, применяем `preg_replace`
Обязательным условием гарантированного успеха является полная отдача в работе или прохождении задание от начала и до конца, не останавливаясь на полпути.
Это полностью решает Вашу задачу.

Теперь же Вы просите поменять "кусок кода" введенный пользователем... Что Вы там изобретаете, можете толком написать?.

p.s. Каждый топик все лучше и лучше...
Быстрый ответ:

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