2013-08-17 3 views
0

Я пытаюсь вызвать другую страницу php, не имея один за другим.Вызов/выполнение другой страницы в php

У меня есть страницы a и b:

  • a.php содержит:

    <html a page tags> 
    <?php echo "i'm a.php"; ?> 
    </html a page tags> 
    
  • b.php содержит:

    <html b page tags> 
    <?php 
        echo "i'm b.php"; 
        include '../a.php'; 
    ?> 
    </html b tags> 
    

Когда b.php запускается, он отображает:

<html b page tags> 
    i'm b.php 
    <html a page tags> 
    i'm a.php 
    </html a page tags> 
    </html b tags> 

Вы можете увидеть HTML-теги из обоих a и b, один за другим.

Вместо этого, когда b.php управляют его должен отображать только текст в HTML-теги a «s. Т.е., вывод должен быть:

<html b page tags> 
    i'm b.php 
    i'm a.php 
    </html b tags> 

ответ

2

Вам не нужно ставить HTML тег в A.php, если он всегда включен. это означает следующее:

a.php

<?php echo "i'm a.php"; ?> 

b.php

<html b page tags> 
<?php 
    echo "i'm b.php"; 
    include '../a.php'; 
?> 
</html b tags> 

HTML выход:

<html b page tags> 
    i'm b.php 
    i'm a.php 
</html b tags> 
+0

Привет, я думаю, у меня есть недоразумение, как работает web/php. Я пытаюсь создать простую форму контакта b.php и a.php - это страница благодарности. Вся логика и валидация находятся в b.php, a.php, это просто сообщение. Оба имеют похожие теги html. Если я делаю ваш метод, я не вижу a.php в текстовом поле url. Спасибо за ответ – user2286360

0

Если вам не нужно A.php работать самостоятельно , просто удалите html-теги из a.php.

Если вы хотите, чтобы a.php и b.php могли работать отдельно, вы можете сделать это так.

a.php

<?php if (isset($being_included)): ?> 
<html a page tags> 
<? endif; ?> 

<?php echo "i'm a.php"; ?> 

<?php if (isset($being_included)): ?> 
</html a page tags> 
<? endif; ?> 

b.php

<html b page tags> 
<?php 
    echo "i'm b.php"; 
    $being_included = true; 
    include '../a.php'; 
?> 
</html b tags> 

Надеется, что это помогает.

0

хороший вопрос :)

a.php

<html a page tgas> 
<?php echo "i'm a.php"; ?> 
</html a page tgas> 

b.php

<html b page tags> 
<?php 
    echo "i'm b.php"; 
?> 
</html b tags> 
<?php 
require'../a.php'; // incase it doesnt execute it will give you error telling WHY?? 
?> 

Он будет держать как страницы тег нетронутыми и даст вам выход как вы хотите.

при нажатии b.PHP

<html b page tags> 
    i'm b.php 
    </html b tags> 

    <html a page tags> 
    i'm a.php 
    </html a tags> 
+0

благодарю вас за ответ! – user2286360

+0

ваш приветствуем. Есть и способы сказать спасибо тоже о stackoverflow, если это вам помогло ..;) – Rahul

0

Спасибо, я использовал заголовок ... Я что-то отсутствует, вы должны поставить PHP тег перед первым HTML

<html> 
    </html> 
    <?php 
     //this will NOT work, the browser received the HTML tag before the script 
     header('Location: http://www.yoursite.com/new_page.html') ; 
    ?> 

Как указано здесь: http://php.about.com/od/learnphp/ht/phpredirection.htm

0

Может быть, немного поздно:

Я использую echo file_get_contents(" URL ");

это показывает только вывод, если сайт является скриптом, этот скрипт запускается на удаленном сервере.