Os arquivos php incluídos não funcionam após a subpasta de arquivos movidos
Eu tenho um problema com a seção php include. Para explicar completamente o problema, criei uma página de teste para você.
Primeiro, quero mostrar o esquema dos arquivos para você. Também é possível baixar os arquivos de teste desteLIGAÇÃO e você pode testá-lo onlineLINK DE TESTE
Como você pode ver, há uma subpasta na pastahtdocs
(root) e todos os arquivos php lá. Agora vou mostrar o código php dentro do arquivo, respectivamente.
appname / index.php
<?php include_once 'includes/config.php';?>
<div class="callPage">Click Here</div>
<div id="testBox"></div>
<script type="text/javascript">
$(document).ready(function(){
var siteurl = '<?php echo $url;?>';
$("body").on("click",".callPage", function(){
$.ajax({
url: siteurl+'content/test',
beforeSend: function() {
//Do something
},
complete:function(){
//Do something
},
success:function(response){
$("#testBox").html(response);
}
});
});
function LoadPage(){
$.get(siteurl+'content/test', function(data) {
$('#testBox').html(data);
});
}
LoadPage();
});
</script>
appname / content / test.php
<?php
include_once 'includes/config.php';
echo $text.'</br>';
echo $worked.'</br>';
?>
appname / includes / config.php
<?php
$url = 'http://localhost:8888/';
$text = 'Well Come! How are you today ?';
$worked = 'It is working :)';
?>
Quando você abre oLINK DE TESTE, LoadPage();
função javascript chamarátest.php
no arquivo de conteúdo e exiba-o#testBox
. Primeiro você não verá nada em#testBox
deindex.php
. Porqueconfig.php
não pode ser incluídotest.php
.
Eu sei se eu mudar essa linhainclude_once 'includes/config.php';
detest.php
como issoinclude_once '/appname/includes/config.php';
então o problema será corrigido.
Mas se as páginas se multiplicarem e eu desejar usar os arquivos na pasta raiz (htdocs ou www), preciso excluir o nome do aplicativo (nome da subpasta) =>include_once 'appname/includes/config.php';
de todos os arquivos. Será um grande problema quando esses arquivos se multiplicarem.
Na verdade, a pergunta é exatamente:
Como podemos incluir arquivos php sem especificar o caminho completo para o include, quando o caminho do aplicativo em relação aoDOCUMENT_ROOT
é variável ou desconhecido einclude_path
não pode ser modificado de forma confiável por todos os usuários do aplicativo?