2016-04-22 2 views
2

Мне интересно, возможно ли то, что мне нужно. У меня есть строка, и я хочу заменить часть ее другой строкой ничем жесткой, но строка, которую я хочу заменить, имеет некоторые «динамические» символы.str_replace с переменным символом

У меня есть строка, которая содержит:

http://someurl.com/whatever?page= *

где * может быть любое число

мне нужно иметь:

http://someurl.com/whatever?page= * #/somestring

где #/SomeString является жёстко

+2

Если у вас динамические части строки есть вы хотите посмотреть на 'preg_replace()' и использовать простое регулярное выражение для Это. – Rizier123

+0

Являются ли дополнительные символы, всегда идущие в конце строки? Если это так, вы можете просто добавить дополнительную порцию: $ string. = '#/Somestring'; – iainn

+0

Дело в том, что строка представляет собой кучу html-кода, а части, которые я хочу изменить, распространяются внутри этой строки. – user3813360

ответ

0

Как другие предложил вы можете использовать регулярные выражения для этого рода вещи; в вашем случае я хотел бы предложить что-то вроде этого:

$sub = 'http://someurl.com/whatever?page=23'; 
$new = preg_replace('/\?page=([0-9]+)/', '?page=$1#/something', $sub); 

echo $sub; 
echo '</br>'; 
echo $new; 

Он печатает:

http://someurl.com/whatever?page=23 
http://someurl.com/whatever?page=23#/something 
+0

это отлично работает. благодаря – user3813360

0

Вы можете использовать StrPos(), чтобы найти начальную и конечную позицию строки. Затем вы просто используете str_replace для редактирования ссылки.

Посмотрите на мой более ранний ответ здесь: PHP To Show Title From Reffering URL В вашем случае вы не должны использовать strip_tags, но все остальное совершенно одинаково.

Смежные вопросы