Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите пожалуйста перенести функцию с php 5.3 на 5.6

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите пожалуйста перенести функцию с php 5.3 на 5.6
mrvilitin
Отправлено: 02 Сентября, 2017 - 19:18:57
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2017  


Помог: 0 раз(а)




Помогите пожалуйста перенести функцию с php 5.3 на 5.6

Сама функция

http://www.php.su/
function clean_url( $url ) {
if ( $url == '' ) return;
return reset( explode( ':', reset( explode( '/', str_replace( array( 'http://', 'www.' ), array( '', '' ), strtolower( $url ) ) ) ) ) );
}

" target="_blank">
function clean_url( $url ) {
if ( $url == '' ) return;
return reset( explode( ':', reset( explode( '/', str_replace( array( 'http://', 'www.' ), array( '', '' ), strtolower( $url ) ) ) ) ) );
}



файл я прикрепил 134 строка
Скачать файл: functions.php
Скачан раз: 51
 
 Top
Строитель Модератор
Отправлено: 02 Сентября, 2017 - 19:42:01
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




mrvilitin, а что эта функция должна возвратить в итоге, доменное имя сайта?
 
 Top
andrewkard
Отправлено: 02 Сентября, 2017 - 21:58:27
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Эта функция будет работать в 5.6 и даже в 7 версии
 
 Top
mrvilitin
Отправлено: 02 Сентября, 2017 - 22:04:14
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2017  


Помог: 0 раз(а)




andrewkard пишет:
Эта функция будет работать в 5.6 и даже в 7 версии

не работает
(Добавление)
Строитель пишет:
mrvilitin, а что эта функция должна возвратить в итоге, доменное имя сайта?

да
(Добавление)
Strict Standards: Only variables should be passed by reference in file.game-portal.su/modules/func tions.php on line 134 Strict Standards: Only variables should be passed by reference in file.game-portal.su/modules/func tions.php on line 134
 
 Top
Строитель Модератор
Отправлено: 02 Сентября, 2017 - 22:15:08
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




mrvilitin пишет:
да
Ну тогда посмотрите на результат этого примера, и если он подходит, то замените описание функции clean_url() в вашем файле
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. echo clean_url('http://forum.php.su:8080/topic.php?forum=71&topic=19751&postid=1504369137#1504369137');
  4.  
  5.  
  6. function clean_url($url) {
  7.     $patt = '~https?://([^\s:/]+)~i';
  8.     preg_match($patt, $url , $a);
  9.  
  10.     return empty($a) ? false : $a[1];
  11. }
  12.  
 
 Top
mrvilitin
Отправлено: 02 Сентября, 2017 - 22:28:08
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2017  


Помог: 0 раз(а)




Строитель пишет:
mrvilitin пишет:
да
Ну тогда посмотрите на результат этого примера, и если он подходит, то замените описание функции clean_url() в вашем файле
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. echo clean_url('http://forum.php.su:8080/topic.php?forum=71&topic=19751&postid=1504369137#1504369137');
  4.  
  5.  
  6. function clean_url($url) {
  7.     $patt = '~https?://([^\s:/]+)~i';
  8.     preg_match($patt, $url , $a);
  9.  
  10.     return empty($a) ? false : $a[1];
  11. }
  12.  


Огромное вам спасибо. Хранит вас бог!
 
 Top
LIME
Отправлено: 03 Сентября, 2017 - 16:41:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)





скобки надо ставить даже если ф-ция в одну строку
программист чаще читает код чем пишет
 
 Top
rgl
Отправлено: 05 Сентября, 2017 - 15:15:51
Post Id



Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Авг. 2017  
Откуда: замкадье


Помог: 1 раз(а)




А зачем изобретать велосипед? Есть же штатная функция для этого...
PHP:
скопировать код в буфер обмена
  1. echo clean_url('http://forum.php.su:8080/topic.php?forum=71&topic=19751&postid=1504369137#1504369137');
  2.  
  3. function clean_url($url) {
  4.   $t = parse_url($url);
  5.   return isset($t['host']) ? $t['host'] : false;
  6. }

К тому же, урл может иметь вид 'http://user:password@forum.php.su:8080/topic.php...' и штатная функция отработает правильно и в этом случае, а регулярку для этого заметно усложнить пришлось бы...

(Отредактировано автором: 05 Сентября, 2017 - 15:20:10)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB