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

  • Автор темы Merke
  • Обновлено
  • 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-скрипт не работает]

Merke


Рег
08 Feb, 2006

Тем
77

Постов
195

Баллов
600
  • 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

Тем
84

Постов
185

Баллов
655
  • 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

Тем
77

Постов
199

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

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

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

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

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

Aida1


Рег
14 Mar, 2011

Тем
59

Постов
211

Баллов
536
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно