Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何仅使用preg_match创建if语句?_Php_Regex - Fatal编程技术网

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

PHP如何仅使用preg_match创建if语句?,php,regex,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 ($

如果有必要,我会尝试附加一个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;
}

?>

我觉得这应该是我理解php语法的方式,但有些地方不正常。提前谢谢。

我不知道为什么您希望使用regex“尽可能多”,而不是尽可能多地使用regex,这应该是非常少的。在您的情况下,原始代码要快得多,您仍然可以用更少的代码来完成:

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

您的正则表达式需要在替换中的
.com
之后或
facebook
之前留一个空格。在正则表达式中,空间很重要。

简洁的代码远不如可读的代码有用。抱歉,但我必须做出此声明。将您的正则表达式更改为
^(http:\/\/www.facebook.com | facebook.com)
,不带空格并转义“\`
preg\u replace(/(facebook\.com)(\/i)/,$facebook\u url,“facebook.com/$facebook\u url”)这应该只在正则表达式匹配的情况下附加url,因此实际上它就是您要查找的内容。。。我想。
if (stripos($facebook_url, "facebook.com") === false) {