Обнаружение URL с помощью preg_match? без http:// в строке

Я задавался вопросом, как я мог проверить строку, в которую врываются массив против preg_match, чтобы видеть, запустилось ли это с www. У меня уже есть тот та проверка на http://www.

function isValidURL($url)
{
return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}

$stringToArray = explode(" ",$_POST['text']);

  foreach($stringToArray as $key=>$val){
  $urlvalid = isValidURL($val);
  if($urlvalid){
  $_SESSION["messages"][] = "NO URLS ALLOWED!";
  header("Location: http://www.domain.com/post/id/".$_POST['postID']);
     exit();
     }
     }

Спасибо! Stefan

11
задан Igor Serebryany 4 May 2010 в 02:17
поделиться

2 ответа

Вы хотите что-то вроде:

%^((https?://)|(www\.))([a-z0-9-].?)+(:[0-9]+)?(/.*)?$%i

здесь используется | чтобы соответствовать http: // или www в начале. Я изменил разделитель на % , чтобы избежать конфликтов с |

13
ответ дан 3 December 2019 в 05:11
поделиться

Try implode($myarray, '').strstr("www.")==0. Это имплозирует ваш массив в одну строку, затем проверяет, находится ли www. в начале строки (индекс 0).

-2
ответ дан 3 December 2019 в 05:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: