» Веб-дизайн>выполнить скрипт и предать его в переменную как строку.
Катя. 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 во включаемом коде (при этом выполнение включаемого сценария прекращается).
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, а если строка формируется не одной командой?
Мозг сломаешь, пока прочитаешь его. а ведь нужен только его вывод.
silly 22:01 17.01.2012
Сообщение от Катя.:
1) Подключаем интерпретатор php как внешнее приложение.
2) Скарливаем ему наш php-файл
3) Получаем на выходе html-ку.
4) Вот её-то мы вставляем в код как переменную.
Просто была надежда что есть нативная функция в php, которая бы это всё делала.
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:
не вывод староннего скрпта те важен
Словами это похоже на инклюд.
Я же в первом посте пишу что мне важно именно второе.
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