В этих случаях, когда вы точно знаете, какие URL-адреса совпадают, а они не являются шаблонами, strpos
проще, чем preg
функции.
strpos
принимает строку для проверки, совпадение, необязательное смещение и возвращает FALSE, если совпадения не было в строке.
$url_chk = strtolower($original_url);
if (strpos($url_chk, 'bit.ly') === FALSE
|| strpos($url_chk, 'tinyurl.com') === FALSE
|| strpos($url_chk, 'tr.im') === FALSE) {
echo "Sorry, we do not shorten short URLs.";
} else {
echo "We can shorten that!";
}
РЕДАКТИРОВАТЬ : я изменяю исходный URL-адрес на нижний регистр, чтобы упростить сопоставление, поскольку, например, пользователь мог отправить URL-адрес как tinyURL.com.
ВТОРОЕ РЕДАКТИРОВАНИЕ Чтобы ответить на ваше замечание: кажется, что строка с сокращенным URL создана в строке
$shorten_url = "{$config['host']}/$code";
, что означает, что $config['host']
должен содержать соответствующую часть URL. Но не ясно, откуда это взялось. По-видимому, он создан в config.php.
Наши предложения, использующие die()
или echo()
, являются просто предложениями, не встраивайте это непосредственно в ваш sprintf или код без фактической их адаптации.