PHP如何仅使用preg_match创建if语句?

时间:2013-04-11 14:22:31

标签: php regex

我正在尝试在必要时附加一个URL,并在没有必要时跳过它。想一想,我现在正在学习php,我想尽可能多地使用正则表达式。是否可以使用preg_match使这段代码更简洁?例如:

<?php
$facebook_url = str_replace("facebook.org","facebook.com", trim($_REQUEST['facebook_url']));

$position = strpos($facebook_url, "facebook.com");

if ($position === false) {
  $facebook_url = "http://www.facebook.com/" . $facebook_url;
}

?>

但是使用:

    if  (!preg_match("/^(http:///www.facebook.com | facebook.com)/i"), $facebook_url)) {
    $facebook_url = "http://www.facebook.com/" . $facebook_url;     
}

我觉得这应该像我理解php语法的方式一样,但有些东西不能正常工作。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我不知道你为什么要“尽可能”地使用正则表达式而不是需要使用正则表达式,这应该是非常少的。在您的情况下,原始代码要快得多,您仍然可以使用更少的代码来执行此操作:

if (stripos($facebook_url, "facebook.com") === false) {

您的正则表达式需要在.com之后或更改facebook之前的空格。空间在正则表达式中很重要。