如何使用prepos_match()的strpos()

时间:2016-02-13 19:39:00

标签: php

我有一个脚本,当冲浪者来自某些网站时包含文件,它看起来像这样:

<?php
$referral = $_SERVER['HTTP_REFERER'];
if (preg_match('/yahoo.com\/main.html|yahoo.com\/secound.html/', $referral)) {
require_once ('a.php');
} else if (preg_match('/google.com/', $referral)) {
require_once ('b.php');
} else {
require_once ('c.php');
}
?>

但它正在杀死我的服务器,我想用strops()替换它,但我不知道怎么做,我试过这个:

<?php
$referral = $_SERVER['HTTP_REFERER'];
if (strops('/yahoo.com\/main.html|yahoo.com\/secound.html/', $referral)) {
require_once ('a.php');
} else if (strops('/google.com/', $referral)) {
require_once ('b.php');
} else {
require_once ('c.php');
}
?>

但它不起作用:(

2 个答案:

答案 0 :(得分:2)

<?php
$referral = $_SERVER['HTTP_REFERER'];
if ((strpos($referral, 'yahoo.com/main.html')!==false)
  ||(strpos($referral, 'yahoo.com/secound.html')!==false)) {
require_once ('a.php');
} else if (strpos($referral, 'google.com')!==false) {
require_once ('b.php');
} else {
require_once ('c.php');
}
?>

答案 1 :(得分:0)

请查看此处的PHP文档:http://php.net/manual/en/function.strpos.php

Strpos在另一个字符串中查找特定字符串,因此您无法使用正则表达式。你可以找到一个特定的字符串。

e.g

strpos('google.com', $referral')

对于包含true的任何字符串,

都会返回google.com。如果你想检测多个不同的字符串,你可以将多个strpos组合在一起(使用或运算符),或坚持使用当前的方法。