Здравствуйте, есть проблема, для замены одного выражения на другое есть str_replace(), но мне надо вот что. Есть текст: "Обязательным условием гарантированного успеха является полная отдача в работе и прохождение задание от начала и до конца, не останавливаясь на полпути." Предположим я не знаю этого текста и мне нужно найти в тексте выражение: "в работе и прохождении" и заменить на: "в работе или прохождении".
Игорь_Vasinsky
23.10.2014 - 12:42
Цитата |
Предположим я не знаю этого текста |
Цитата |
найти в тексте выражение: "в работе и прохождении" |
нить логики беспощадно порвана.
_____________
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);
?>
а если дело в окончании, то
_____________
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
23.10.2014 - 13:46
Игорь_VasinskyОбязательным условием гарантированного успеха
, является полная отдача в работе и прохождени
е задани
й от начала
и до конца, не останавливаясь на полпути
Игорь_Vasinsky
23.10.2014 - 14:28
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
23.10.2014 - 15:28
ну выше 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('&','&',$произвольное имя переменной) ", скрипт должен вывести: "Что такое $произвольное имя переменной, которое ввел пользователь ранее = str_replace('&','©',$произвольное имя переменной, которое ввел пользователь ранее) "
Надеюсь что на этот раз объяснила понятно
walerus
23.10.2014 - 20:57

Вы сами то поняли что написали? В начале топика Вы просите заменить "часть текста", но в Вашем примере ошибка, в "неизвестном предложении" и в "искомом слове", на что Вам
Игорь_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. Каждый топик все лучше и лучше...
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.