Удалить определенный текст из входных данных

  • Автор темы webobid
  • 40
  • Обновлено
  • 13, May 2024
  • #1
У меня есть такой сценарий
 function convertUrl($originalUrl){

$tmp1 = substr($originalUrl,0, strrpos($originalUrl,"/"));

$tmp2 = substr($tmp1,0, strrpos($tmp1,"/"));

$tmp3 = substr($originalUrl, strrpos($originalUrl,"/"), strlen($originalUrl));

return $tmp2 . $tmp3;}

echo convertUrl("siteurl/id124536/05/how_to_make_a_php_site");
Код (разметка): функция должна удалять из URL-адреса определенный текст, например: siteurl/id124536*/05*/how_to_make_a_php_site Теперь я хочу, чтобы, когда я ввожу siteurl/id124536*/05*/how_to_make_a_php_site, этот URL-скрипт работал, иначе не работал.

[пример: когда я ввожу siteurl/id124536/how_to_make_a_php_site, этот URL-скрипт не работает]

webobid


Рег
03 May, 2013

Тем
1

Постов
2

Баллов
12
  • 18, May 2024
  • #2
Это для раздела php, а не javascript.

Что ты пытаешься сделать? Насколько я понимаю, результатом вашей функции является удаление «/05» из строки, но в примере, который не работает, у вас нет «/05», а аргументом является результат, которого вы пытаетесь достичь, поэтому я не Я не понимаю.

Функция не работает, поскольку количество косых черт жестко запрограммировано в функции, и если вы измените это число, функция завершится ошибкой.

Думаю дальше будет лучше:

 

function convertUrl($originalUrl){

$urlArray = explode('/', $originalUrl);

if (count($urlArray) === 4 ) {

unset($urlArray[2]);

} elseif (count($urlArray) === 3) {

unset what pat of the url you want

}

return implode('/', $urlArray);

}

echo convertUrl("siteurl/id124536/05/how_to_make_a_php_site");

Код (разметка): Но у вас должна быть логика для разного количества косых черт.
  function convertUrl($originalUrl){ $urlArray = explode('/', $originalUrl); unset($urlArray[2]); return implode('/', $urlArray); } echo convertUrl("siteurl/id124536/05/how_to_make_a_php_site"); 
Код (разметка):
 

wdyus


Рег
20 Feb, 2014

Тем
0

Постов
3

Баллов
3
  • 21, May 2024
  • #3
 

function convertUrl($originalUrl) {

$cleanUrl = str_replace(array('[URL='https://lumtu.com/yti/dwddwd3dodHRwOi8viOw']http://www[/URL].', 'http://'), '', $originalUrl); // remove protocol

$urlArray = explode('/', $cleanUrl); // make an array from the string

if (count($urlArray) === 4 ) {

unset($urlArray[2]); // remove the 3d element if the array has 4 elements

}

return implode('/', $urlArray); //craete string from the array and return it

}

echo convertUrl("siteurl/id124536/05/how_to_make_a_php_site");

echo "<br>";

echo convertUrl("siteurl/id124536/how_to_make_a_php_site");

echo "<br>";

echo convertUrl("[URL='https://lumtu.com/yti/dk22kdGVodHRwOi8vc2l0ZXVybC5jb20vaWQxMjQ1MzYvMDUvaG93X3RvX21ha2VfYV9waHBfcBHa']http://siteurl.com/id124536/05/how_to_make_a_php_site[/URL]");

Code (markup): results: siteurl/id124536/how_to_make_a_php_site siteurl/id124536/how_to_make_a_php_site siteurl.com/id124536/how_to_make_a_php_site Is this the result you wanted or I didn't understand the purpose of the function?
 

lifesmeet


Рег
25 Jan, 2012

Тем
0

Постов
3

Баллов
3
  • 09, Jun 2024
  • #4
Вторая функция не работает, поскольку не завершена.

Вам пришлось сказать мне, какова ваша цель, потому что я не понимаю, что должна делать функция.

Какой результат вы хотите от функции?

Это ваша цель: siteurl/id124536/how_to_make_a_php_site? Вы хотите, чтобы конечным результатом был URL-адрес с двумя косыми чертами «/», как здесь?



Знаете ли вы, какие URL-адреса будут аргументом функции? Какие URL-адреса должна изменить функция? Сколько косых черт в URL? Где находится строка, которую вы хотите удалить — всегда после первой косой черты или всегда после второй косой черты или меняется место? Всегда ли строка, которую вы хотите удалить, одна и та же?
 

aida1


Рег
14 Mar, 2011

Тем
3

Постов
17

Баллов
47
Тем
49554
Комментарии
57426
Опыт
552966

Интересно