Я хочу проверить, существует ли строка в файле, чтобы избежать повторения одной строки. Я установил ограничение на сайт, чтобы позволить себе просматривать его, другие перенаправляются на страницу «unavailable.php».
Но я хочу разрешить людям просматривать сайт, если они запрашивают разрешение.
В моем случае у меня есть .htaccess
файлКак проверить, существует ли строка в файле
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REMOTE_HOST} !^34\.120\.121\.20 #this a random ip
RewriteCond %{REQUEST_URI} !path/to/first/exception\.php$ #first exception is 'unavailable.php'
RewriteCond %{REQUEST_URI} !path/to/another/exception\.php$ #the second exception is 'request_permission.php'
RewriteRule \.php$ /redirect/to/first/exception/ [L]
и request_permission.php
, я следующий код:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$data = file('.htaccess');
$parts = explode(' ', $data[2]);
$parts_end = end($parts);
$parts_substred = substr($parts_end, 2);
$ip_addr = str_replace('\\', '', $parts_substred);
if ($ip_addr != $ip){
$new_ip = str_replace('.', '\\.', $_SERVER['REMOTE_ADDR']);
$new_string = str_replace($parts_end, "", $data[2]) . "!^".$new_ip;
$string = $data[0].$data[1].$data[2].$new_string.PHP_EOL.$data[3].$data[4].$data[5];
//file_put_contents(".htaccess", $string);
}
?>
Теперь каждый раз, когда я посещаю request_permission.php
новую линию, как это создается: RewriteCond %{REMOTE_HOST} !^56\.80\.1\.15
(скажем, это мой IP).
Я хочу проверить, существует ли линия с моим IP-адресом в htaccess, сделайте это, я не буду дублировать ее снова.
Я пытался использовать
strpos()
, но он не находит мой IP-адрес, даже если он существует.
Как мне это сделать?
Что-то вроде этого? http://stackoverflow.com/questions/19760564/php-find-a-string-in-file-then-show-its-line-number – bloodyKnuckles
Вы используете неправильный подход. Не изменяйте файл стиля .htaccess' для этого. Вместо этого взгляните на документацию: для этого есть доступ к базе данных в фоновом режиме. Гораздо удобнее, меньше подвержено ошибкам, проще. – arkascha
humm, то как я могу разрешить этот IP-адрес, если я не изменяю файл '.htaccess'? –