Большой Воронежский Форум
Страница 1 из 2
1 2 >
» Веб-дизайн>выполнить скрипт и предать его в переменную как строку.
Катя. 21:45 16.01.2012
Всё. Сдаюсь. Жду камней в свою сторону. Но никак не могу понять элементарной вещи. Может праздники, может старость, может просто тупость.

Есть скрипт 1.php
Код:
<?php
echo 'preved!!!';
?>
Естественно результатом его будет одна строка.
хочу сделать скрипт 2.php
Код:
<?php
$Var1=require_once('1.php');
?>
Где переменная $Var1 получила бы значение 'preved!!!'.
Но require_once php возвращает мне значение 1. Тип-топ, скрипт выполнился.
include_once выдает тоже самое.
Так как?
AlexanderSergeev 21:51 16.01.2012
ну а с include('2.php') пробовал?
мне когда нужно вывести (присвоить переменной не пробовал) результат другого скрипта, просто инклуд пишу, твой preved как раз.
silly 21:54 16.01.2012
Либо return, либо ob_start/ob_get_contents.
DRON-ANARCHY 09:15 17.01.2012
Или file_get_contents() вроде, не?
И да, мне кажется, или скрипт при таких раскладах подключает сам себя? Не одуреет ли?
anadonam 18:53 17.01.2012

Сообщение от Катя.:
Но require_once php возвращает мне значение 1. Тип-топ, скрипт выполнился.
include_once выдает тоже самое.
Так как?

и это нормально.
----------------------
$Var1 =predev!!!';
echo $Var1;

и никак иначе.
-----------------------
варианты:
- выполнить скрипт записать данные в файл -> обработать эти данные
- если нужно манипуляровать разными функциями в зависимости от условий, а оператора if elsе не достточно читайе "Перегрузка операторов"
- или при помощи if else инклюдить разные файлы по заданным условиям (в php отличная альтернатива "перегрузке").
Катя. 19:09 17.01.2012

Сообщение от AlexanderSergeev:
ну а с include('2.php')

срочна на гугль и узнавать чем отличается include_once(); от include();, а потом еще раз перечитать мой пост.

Сообщение от DRON-ANARCHY:
Или file_get_contents()

нет. так он возвращает содержимое самого файла и на странице я вижу сам php-код.

Сообщение от anadonam:
выполнить скипт записать данные в файл -> обработать эти данные

Да-да. у меня сегодня по дороге домой появилась такая же мысль
1) Подключаем интерпретатор php как внешнее приложение.
2) Скарливаем ему наш php-файл
3) Получаем на выходе html-ку.
4) Вот её-то мы вставляем в код как переменную.
Просто была надежда что есть нативная функция в php, которая бы это всё делала.

В результате, пока было найдено такое решение. Код первого файла встроен во второй, все выхлопы кода заменены на str.=%выхлоп кода%. Пару ctrl+c, ctrl+h. Благо код не очень большой. спасибо за

Сообщение от silly:
Либо return

Мысли об этом натолкнули на столько простое топорное решение.

Сообщение от anadonam:
а оператора if elsе не достточно читайе "Прегрузку операторо" или при помощи если инклюдить разные файлы.

У меня парсер сломался. Что тут написано?
anadonam 19:14 17.01.2012

Сообщение от Катя.:
Да-да. у меня сегодня по дороге домой появилась такая же мысль
1) Подключаем интерпретатор php как внешнее приложение.
2) Скарливаем ему наш php-файл
3) Получаем на выходе html-ку.
4) Вот её-то мы вставляем в код как переменную.

Катя., ну да - самый простой вариант.
- ставишь php как cgi на комп
- в коде проги "С или Дельфи я то хз как нужно для ТЗ" execute( '[путь до файла]php.exe / бла бла бла') [командной строке передашь нужные параметры]-

я грубо для сути -но думаю смсл понятен..)

ps/ там написано то что ты и так понял тока другими словами - оно те не над распарсивать )) я думаю ты уже и так разберешься, а нужно будет распарсишь )))))
Serezhka 20:18 17.01.2012
Чумачечие?
Если текст
<?php
echo 'predev!!!';
?>
в файле 1php
то его и надо подключать, а не самого себя, ок?
Dark_Dante 20:53 17.01.2012
Эмм.. А зачем такие извращения?

Сообщение от :
<?php
$var=require_once "1.php";
echo $var;
?>

правда надо будет от строки отрезать один символ с конца - видимо конструкция помимо содержимого файла возвращает TRUE что прилепляется как единица к нужной нам строке.

То что вам возвращает единицу это из за того что вы конструкцию вызываете как функцию

require_once('2.php');

Правильный синтаксис require_once '2.php' ;
anadonam 20:57 17.01.2012
Dark_Dante, нет ошибки там.
require_once() - возврат тру (1) если сработало и false (0) если нет.


$Var1=require_once('2.php');

если ( вар 1 == 0 )
{
require_once('3.php');
}

//нормальная конструкция

---------------------------------------
ТСу нужно выполнять разный код исходя из условий. лучший обучающий пример это написать калькулятор. хотя бы сделать ТЗ:

var $a;
var $b;

A=?[число];

если А > 10 то $s=$a+$b=? , а Если А >100 то $s=$a-$b=?.

print ($s);

//дальше будет яснее...
Dark_Dante 21:09 17.01.2012

Сообщение от :
Директивы require и include не являются функциями. Скорее они — специальные конструкции языка. Иногда include называют "почти-функцией", так как она может принимать значение, возвращаемое командой return во включаемом коде (при этом выполнение включаемого сценария прекращается).

http://alt-f4.ru/php-include-require

Ошибки нет, но тем не менее...
Катя. 21:26 17.01.2012
Serezhka, ох.. небольшая опечатка в цифрах. прошу прощения. Все исправлено.
Катя. 21:32 17.01.2012
Dark_Dante, получилось это

Сообщение от :
Preved!!begin
1
end

Preved!! - это строка с инклюдом.
бегин - начало скрипта.
1 - это вывод значение моей переменной.
энд - конец скрипта.
Нет разницы между include(); и include;
Dark_Dante 21:47 17.01.2012
Можно вопрос? А зачем вы вообще так делаете?

Неужели нельзя присвоить нужную вам строку переменной в одном файле, приинклюдить его к другому, и обработать переменную в этом файле?
Катя. 21:59 17.01.2012
Dark_Dante, а если строка формируется не одной командой?

Вот как может выглядеть скрипт 1.php

Код:
<?php
echo "preved!!";
echo "preved!!";
<!-- бла-бла-бла. куча кода -->
echo "preved!!";
<!-- бла-бла-бла. куча кода -->
echo "preved!!";
<!-- бла-бла-бла. куча кода -->
?>
Мозг сломаешь, пока прочитаешь его. а ведь нужен только его вывод.
silly 22:01 17.01.2012

Сообщение от Катя.:
1) Подключаем интерпретатор php как внешнее приложение.
2) Скарливаем ему наш php-файл
3) Получаем на выходе html-ку.
4) Вот её-то мы вставляем в код как переменную.
Просто была надежда что есть нативная функция в php, которая бы это всё делала.

ob_get_contents
Катя. 22:03 17.01.2012
silly, эм.. а как его в буфер засунуть?
silly 22:05 17.01.2012
Код:
ob_start();
include('1.php');
$out = ob_get_contents();
ob_end_clean();
Dark_Dante 22:08 17.01.2012

Сообщение от Катя.:
Dark_Dante, а если строка формируется не одной командой?

Вот как может выглядеть скрипт 1.php

Код:
<?php
echo "preved!!";
echo "preved!!";
<!-- бла-бла-бла. куча кода -->
echo "preved!!";
<!-- бла-бла-бла. куча кода -->
echo "preved!!";
<!-- бла-бла-бла. куча кода -->
?>
Мозг сломаешь, пока прочитаешь его. а ведь нужен только его вывод.

Ну я это представляю так...
Код:
<?php
$str = "preved!! ";
<!-- бла-бла-бла. куча кода -->
$str .="preved!! ";
<!-- бла-бла-бла. куча кода -->
$str .="preved!! ";
<!-- бла-бла-бла. куча кода -->
echo $str;
?>

Может быть я что то не так понял?
Катя. 22:10 17.01.2012
Dark_Dante, б#$@!!! прочитай тему всю. может тогда поймешь

На тебе простой
скприт сэйпа. может после этого поймешь что такое "лень разбираться в чужом коде".
Катя. 22:16 17.01.2012
silly, Ура!! Работает! Ты гений!
silly 22:24 17.01.2012
Я тоже познакомился с сабжевой функцией только во время чтения исходников yii, то есть недавно.
anadonam 22:46 17.01.2012
это тоже можно, а (но) как реализвать вот такое:

var $a
var $b

if $a == 1 делаем расчет трехфазного генератора...
if $a == 2 считаем функцию фурье...
if $a == 3 считаем косинус из 8ми..
if $a == 4 интегралъ тут....

if $b == 1 если щитали интеграл то применяем его в расчете генератора и считаем генератор исходя из значений этого интеграла .... *
if $b == 2 если фурье не прощитана то щитаем ее а косинус считаем не из 8ми а из 7ми .....
if $b == 3 если фурье прощитана то ну его этот интегралъ если пощитан выкидываем если нет то и нет.

.....
.....


// вывод отчета

....


сабжевая функция не спасет имхо, упаритесь, нужно переключать задачи хотя если ее достаточно то и вопрос закрыт наверно )))
а слово "апельсин" на "яблоко" менять в буфере - дык вариантов куча - наверно тогда я задачу не понял.
Катя. 22:58 17.01.2012
anadonam, ничего не знаю. у меня есть сторонний скрипт, результат которого надо внедрить в мой. как он там работает - меня не касается. для меня важен только вывод стороннего скрипта.
anadonam 22:59 17.01.2012
Катя., хватает оb - ды какие загоны - его и юзай чего загоняться то ) просто вроде это в любом учебника описано и вариантов тыща.
я просто тогда не понял где сложность... (просто придумать реализацию буфера для обмена данными)

Сообщение от Катя.:
для меня важен только вывод стороннего скрипта.

не вывод староннего скрпта те важен а данные которые он выводит. отсюда и непонятки.
так как скрипт тоже можно интегрировать в прогу целиком и контролировать его работу. Терь понятно. половины лишнего наподсказано )))
Катя. 23:21 17.01.2012

Сообщение от anadonam:
не вывод староннего скрпта те важен

Словами это похоже на инклюд.
Я же в первом посте пишу что мне важно именно второе.

Мне не важна интеграция скрипта. Мне важен его выхлоп. (и вроде тут мы с тобой об этом говорили http://bvf.ru/forum/showpost.php?p=17387173&postcount=5)Разве не это написано в первом посте?

p.s. прошу большие кирпичи в меня кидать не кидать. я - самоучка. изъясняюсь как могу.
anadonam 23:23 17.01.2012

Сообщение от Катя.:
p.s. прошу большие кирпичи в меня кидать. я - самоучка. изъясняюсь как могу.

хорошо....
(после слова "я", не ставится тире == я самоучка)
работкаем...
Катя. 23:32 17.01.2012
anadonam,

Сообщение от :
Paradoxx: Интересно было бы послушать, как ты общаешься в обычной повседневной жизни. Например в продуктовом магазине. Так и представляю как округляются глаза продавщицы при заслушивании запроса картошки админскими терминами.
zingel: select картошка from магазин, where id='продавщица' order by ****атая desc limit 1, 10;

(ох. черт. и исходном сообщении - не кидать)
утро-таки вечера мудренее.
anadonam 23:34 17.01.2012
Катя., вот так:
пук пук - упс ёпанарод. пардоньте, мне ливерной 300 грам на хлас насыпь сцуко.

ps/ иногда под трансом дают не ливерную, а сервилад
еще вопросы ?
DRON-ANARCHY 09:53 18.01.2012

Сообщение от Катя.:
нет. так он возвращает содержимое самого файла и на странице я вижу сам php-код.

Значит, я не так понял вопрос насчет "передать в переменную как строку". Понаркоманим?
eval(file_get_contents('1.php'))
только придется <?php и ?> убрать из 1.php


PS: не спорь с anadonam, не надо этого делать)))
Страница 1 из 2
1
2 >
Вверх