Передача переменных php в строки запроса - PullRequest
0 голосов
/ 09 августа 2010

У меня есть несколько URL-адресов с различными строками запроса, например

 view.php?id=5
 view.php?id=6
 view.php?id=7

на другой странице php. Я использую file_get_contents, как показано ниже:

 $page = file_get_contents('view.php?id=5');
 $file = 'temp/form.html';
 file_put_contents($page, $file);

Это, конечно, только запись первого идентификатора '5', так как я могу получить переменную 'id' на этой странице и записать ее в моей строке file_get_contents, чтобы мне не пришлось выписывать все идентификаторы в отдельных строках

спасибо Rifki

Ответы [ 4 ]

2 голосов
/ 09 августа 2010

Если эти URL используются для просмотра некоторых страниц, вы можете использовать массив $ _GET ( Официальное руководство по PHP для метода $ _GET ).
Он просто получает значение переменной, переданной через метод get (т.е. page.php?var1=1&var2=2), поэтому, если вам нужно получить значение id для вашей страницы, код должен выглядеть примерно так:

$id = $_GET['id'];
$request = 'view.php?id='.$id;
$page = file_get_contents($request);
$file = 'temp/form.html';
file_put_contents($page, $file);

Первая строка получает идентификатор, переданный через url, затем вторая создает строку запроса для передачи вашей функции file_get_contents, а другая - как ваш код.
Это тот случай, если вы запрашиваете данные внутри таких страниц, если, например, вы знаете все необходимые страницы, вы можете использовать предложение for для решения этой проблемы.
Одним из решений может быть:

$first_page = 5;
$last_page = 7;    
for ($i = $first_page; $i <= $last_page; $i++) {
    $request = 'view.php?id='.$i;
    $page = file_get_contents($request);
    $file = 'temp/form.html';
    file_put_contents($page, $file);
}

При этом вы просто устанавливаете первую и последнюю страницу, которую хотите запросить, затем используете эти значения для циклического перемещения по страницам, а затем вызываете свою функцию для выполнения ... "вещи": ​​D
Это хороший подход, потому что тогда вы можете установить во время выполнения значения для оператора for, чтобы вам не приходилось каждый раз изменять этот файл.
Однако я думаю, что лучше использовать идентификацию, отличную от Integer, для ваших страниц, например id=home или что-то в этом роде.

2 голосов
/ 09 августа 2010

Если я правильно понимаю, в ситуации, которую вы демонстрируете, вы можете использовать цикл for или что-то в этом роде. Но это работает, только если идентификаторы являются числовыми и следуют друг за другом.

Пример:

for($i = 5; $i <=7; $i++) {
  $page = file_get_contents('view.php?id='.$i);
  $file = 'temp/form.html';
  file_put_contents($page, $file);
}

Обновлено: Если ваш идентификатор приходит из базы данных, вы можете выбрать все идентификаторы и просмотреть их. Например.

$sql = 'SELECT id FROM tablename;';
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res)) {
  $page = file_get_contents('view.php?id='.$row['id']);
  $file = 'temp/form.html';
  file_put_contents($page, $file);
}
1 голос
/ 09 августа 2010

Если вы получите идентификатор в строке запроса, я имею в виду URL, вы должны написать что-то вроде этого:

$page = file_get_contents('view.php?id='.$_GET['id']);
$file = 'temp/form_'.$_GET['id'].'.html';
file_put_contents($page, $file);
0 голосов
/ 09 августа 2010

Чтобы извлечь переменную из строки запроса, используйте

$ _ GET [ 'имя_переменной']

По умолчанию всякий раз, когда вы отправляете запрос на сервер, вызывается метод GET, если вы явно не укажете, что метод формы будет POST.

// variable_name - это имя переменной в строке запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...