|
|
|
| Здравствуйте, я недавно начал изучать программирование и PHP, и у меня возник такой вопрос:
<?php
$str = 'наша модель ИПК-00-80 немного отличается от модели ИПК-00-80 (М)';
$array = array( 'ИПК-00-80', 'ИПК-00-80 (М)' );
foreach( $array as $arr ){
$str = str_replace( $arr, '<a href="/'.$arr.'">'.$arr.'</a>', $str );
}
echo $str;
?>
|
выведет >>> наша модель <a href="/ИПК-00-80">ИПК-00-80</a> немного отличается от модели <a href="/ИПК-00-80">ИПК-00-80</a> (М)
а если поставить элементы массива в другом порядке, сделает ссылку внутри ссылки.
вопрос - какие есть способы сделать так чтобы все встречающиеся в строке элементы массива были заменены на ссылки и без ошибок? | |
|
|
|
|
|
|
|
для: c-basso
(16.08.2011 в 17:13)
| | неужели никто не знает как такое делается? | |
|
|
|
|
|
|
|
для: c-basso
(16.08.2011 в 23:16)
| | да как вам сказать...
это для вас ИПК-00-80 и ИПК-00-80 (М) - разные вещи
а для скрипта ИПК-00-80 и ИПК-00-80 (М) одно и тоже
нужно было писать ИПК-00-80_(М) | |
|
|
|
|
|
|
|
для: Valick
(16.08.2011 в 23:35)
| | и это не поможет, в первый раз ИПК-00-80_(М) превратится в <a href="/ИПК-00-80">ИПК-00-80</a>_(М) а во второй раз ничего не буде найдено. Интересно было бы узнать существует ли вообще способ решения подобных задач | |
|
|
|
|
|
|
|
для: c-basso
(16.08.2011 в 23:59)
| | и это не поможет
поможет если разбивать строку в массив
а затем менять на нужные строки и собирать массив обратно в строку | |
|
|
|
|
|
|
|
для: c-basso
(16.08.2011 в 23:16)
| | . | |
|
|
|
|
|
|
|
для: sl1p
(17.08.2011 в 03:22)
| | Не могу предложить ничего более оригинального, чем такое решение:
<?php
$str = "nasha model IPK-00-80 nemnogo otli4aetsya ot modeli IPK-00-80 (M)";
$search = array('IPK-00-80 (M)','IPK-00-80');
foreach ($search as $value)
{
$replace = str_replace ($value, '<a href="/'.$value.'">'.$value.'</a>', $str, $count);
}
$replace = str_replace ('">IPK-00-80</a> (M)', ' (M)">IPK-00-80 (M)</a>', $replace);
echo "$replace <br>";
echo $count;
?>
|
| |
|
|
|