PHP - Bir php dosyası ve aynı zamanda sorgu parametreleri göndermek dahil

7 Cevap php

Ben belirli koşullara göre benim php komut dosyası bir sayfa göstermek zorunda. Ben bir eğer durum var ve koşulu sağlandığı takdirde "dahil" bir yapıyorum.

if(condition here){
  include "myFile.php?id='$someVar'";
}

Şimdi sorun, sunucu bir dosya "myFile.php" var ama ben bir argüman (id) ve "id" her çağrısıyla değişecek ve değeri ile bu dosyaya bir çağrı yapmak istiyorum.

Can someone please tell me how to achieve this? Thanks.

7 Cevap

Bir kopyası ve: ne kadar dahil hayal sonra yorumlanır dahil PHP dosyasının içeriğini yapıştırın. Orada hiç kapsam değişikliği, bu nedenle yine de (size bir parametre olarak $ someVar pass sınıf temelli bir yapı düşünün ya da bir kaç global değişkenlere başvurmak olsa bile) doğrudan dahil dosyasında $ someVar erişebilirsiniz.

Öyle böyle bir şey peşinde olan etkiyi elde etmek için olabilir

$_GET['id']=$somevar;
include('myFile.php');

(Eğer farklı argümanlarla tekrar tekrar çağırarak söz) fonksiyon çağrısının bir tür gibi bu içerir kullanıyor gibi Ancak, bu sesler.

Bu durumda, neden bir zamanlar dahil, normal bir fonksiyon içine çevirmek ve birden çok kez aramadı?

Bir sadece bir kod ekleme gibi içerir. Sen dahil kodu sizin temel kod var aynı değişkenleri olsun. Yani sizin ana dosyada yapabilirsiniz:

<?
    if ($condition == true)
    {
        $id = 12345;
        include 'myFile.php';
    }
?>

Ve "myFile.php" in:

<?
    echo 'My id is : ' . $id . '!';
?>

Bu irade çıktı:

Benim id 12345!

Bu bir süre oldu biliyorum, ancak, Iam bu işlemek için en iyi yolu olabilir oturum değişkeni (ler) kullanmak olacağını merak

Lütfen myFile.php sen olurdu

<?php 

$MySomeVAR = $_SESSION['SomeVar'];

?> 

Ve arama dosyasında

<?php

session_start(); 
$_SESSION['SomeVar'] = $SomeVAR;
include('myFile.php');
echo $MySomeVAR;

?> 

Bu tüm süreci Functionize gerekiyor "önerdi" aşmak istiyorsunuz?

Eğer yazmak için gidiyoruz eğer bu PHP dosyasında el dahil - Daff mükemmel cevabını.

Eğer ilk soru ne yapmak gerekiyorsa neyse, burada elde etmek için küçük basit bir fonksiyonudur:

<?php
// Include php file from string with GET parameters
function include_get($phpinclude)
{
    // find ? if available
    $pos_incl = strpos($phpinclude, '?');
    if ($pos_incl !== FALSE)
    {
        // divide the string in two part, before ? and after
        // after ? - the query string
        $qry_string = substr($phpinclude, $pos_incl+1);
        // before ? - the real name of the file to be included
        $phpinclude = substr($phpinclude, 0, $pos_incl);
        // transform to array with & as divisor
        $arr_qstr = explode('&',$qry_string);
        // in $arr_qstr you should have a result like this:
        //   ('id=123', 'active=no', ...)
        foreach ($arr_qstr as $param_value) {
            // for each element in above array, split to variable name and its value
            list($qstr_name, $qstr_value) = explode('=', $param_value);
            // $qstr_name will hold the name of the variable we need - 'id', 'active', ...
            // $qstr_value - the corresponding value
            // $$qstr_name - this construction creates variable variable
            // this means from variable $qstr_name = 'id', adding another $ sign in front you will receive variable $id
            // the second iteration will give you variable $active and so on
            $$qstr_name = $qstr_value;
        }
    }
    // now it's time to include the real php file
    // all necessary variables are already defined and will be in the same scope of included file
    include($phpinclude);
}

>

Ben çok sık bu değişken değişken inşaat kullanıyorum.

Sorunuz çok net değil, ama include php dosyası (sizinkine o sayfanın kaynağını eklemek), sadece aşağıdakileri yapmak zorunda istiyorsanız:

if(condition){
    $someVar=someValue;
    include "myFile.php";
}

As long as the variable is named $someVar in the myFile.php

Birden fazla alan setlerini ajax formları yaparken ben bu rastladım. Örneğin bir istihdam uygulama alarak. Ben bir profesyonel referans seti ile başlar ve "Daha Fazla Ekle" yazan bir buton var. Bu da (isim, iletişim, telefon .. vs) gibi bir şey yapmak gibi bu ilk sayfa çağrı üzerine çalışıyor set girişi dahil bir $ count parametresi ile bir ajax arama yapar:

<?php 
include('references.php');`
?>

Kullanıcı Sonra bir ajax arama ajax('references.php?count=1'); references.php dosyası içinde ben gibi bir şey var kılan bir düğmeye basar:

<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>

Ben de diğer dinamik parametrelerini geçmek site genelinde böyle içerir var. Kullanıcı presler göndermek ve bir form hata olduğunda sorun olur. Yani şimdi bu ekstra alan eklemek için kod çoğaltmak değil dinamik dahil nerede, ben kurulum uygun GET parametrelerinde yer alacak bir işlevi oluşturulan ayarlar.

<?php

function include_get_params($file) {
  $parts = explode('?', $file);
  if (isset($parts[1])) {
    parse_str($parts[1], $output);
    foreach ($output as $key => $value) {
      $_GET[$key] = $value;
    }
  }
  include($parts[0]);
}
?>

Otomatik fonksiyonu sorgu params denetler ve $ _GET değişkeni ekler. Bu benim kullanım durumları için oldukça iyi çalıştı.

Çağrıldığında İşte formu sayfada bir örneğidir:

<?php
// We check for a total of 12
for ($i=0; $i<12; $i++) {
  if (isset($_POST['references_name_'.$i]) && !empty($_POST['references_name_'.$i])) {
   include_get_params(DIR .'references.php?count='. $i);
 } else {
   break;
 }
}
?>

Belirli kullanım durumları karşılamak için dinamik GET params'ı dahil olmak üzere bir başka örnektir. Umarım bu yardımcı olur. Bu kod, tam bir devlet değil ama bu herkes kendi kullanım durumda oldukça iyi başlamak için yeterli olmalıdır unutmayın.