премахване на echo при require/include

19 отговора 1340 прегледа
#1

премахване на echo при require/include

инклудвам външен файл, който извършва някакви операции и изкарва нещо на екрана. Какд а го накарам това, което изкарва на екрана да не го изкарва на екрана, а да ми го запише в променлива?
Благодаря

Отговор
в отговор на Tъпчo #2

Re: премахване на echo при require/include

ако си направиш и малко труда да разгледаш ш***ния мануал на ПХП-то, цена няма да имаш.
хинт: оутпут контрол фунцтионс

Just a genius

Отговор
в отговор на Blake #3

Re: премахване на echo при require/include

мерси. ша си направа труда, по прицип отдавна не се занимавам с ПХП сега ми потрйава затова попитах

Отговор
в отговор на Tъпчo #4

Re: премахване на echo при require/include

$x = 5;

Everything louder than everything else...
Отговор
в отговор на Tъпчo #5

ето как ...

брех, много скрънзави хората станали напоследък ... да му се не види. не дават акъл, все искат пари ...

ето как може да стане:

ob_start();
include("file.php");
$text = ob_get_contents();
ob_end_clean();

и тук вече си имаш в $text целия аутпут на файл.пхп

само че фнимавай ;) можеш да имаш само едно буфериране, извикаш ли я втори път оувъррайдваш първото или става някво мазало. това само в случаите на по-сложни пхп схеми и библиотеки наличен такъв буферинг ...

тфа от мен засега ... че се гледам то станало 15:30 почти, а аз съм забравил днес, че трябва и да работя

Отговор
в отговор на тъpcaч #6

Re: ето как ...

ми не е въпроса в скръндзене, щото сега ше му кажем, след 2 дена ше висне и ше пита как се праща майл, или как да покаже само 20 символа от 50-символен стринг... тоя мануал хората не са го издали ей така да има, а за да се чете...

Just a genius

Отговор
в отговор на тъpcaч #7

Re: ето как ...

Output buffers are stackable, that is, you may call ob_start() while another ob_start() is active. Just make sure that you call ob_end_flush() the appropriate number of times.

та кво викаш за само едното буфериране?

Отговор
в отговор на тoшo #8

Re: ето как ...

брех, къде ми изчезна месиджа? сигурен съм че натиснах бутона и сега го няма ... дано не съм го постнал някъде другаде. я пак да се пробвам да го напиша:

значи от опит бях установил някакъв бъг, че се скапаха нещата с второ извикване на ob_start() без да съм извикал ob_end...() на първия.

но може аз да съм бил в грешка (и в действителност вече се надявам да е така) и просто да съм останал твърдо убеден за този проблем.

благодаря за бележката, тва май съм го утървал като съм чел дукиментацията, ще тествам пак. дано си прав, че върши прекрасна работа в този случай.

Отговор
в отговор на Blake #9

Re: ето как ...

Skuchajno reshih da se wurna w kluba, puk ledam to pisano oshte po temata ;)
zabrawih da ti blagodarja, ti mi kaza napulno dostatuchno ili po-skoro mi pripomni.
Onq den mi trqbwashe a dali zashtoto imah drugi zadachi ili shtoto neiskashe da mi se otwori helpa na magumata ili prosto zashtoto me murzeshe( kakto w momenta da switshna na kirilica), puk w sajta nigoga ne sum gledal helpa i reshih da postna i tuk wse pak toq klub e i za takwiz neshta. Inache towa, koeto mi napisa beshe napulno dostatuchno!
Taj che mersi, i ne se drazni kogato se zadawat takwiz wuprosi.

Отговор
в отговор на тъpcaч #10

Re: ето как ...

taka go naprawih i az, mersi

Отговор
в отговор на Tъпчo #11

Re: премахване на echo при require/include

kakuv output buffering be hora? nema smi. kato se iska da se include neshto, file koito shte se vmukva izobshto ne triabva da otpechatva nishto. prerazgledai si designa na scripta. da, output buffering moje da se izpolzva, no celiat podhod koito ti predlagat e nepravilen.

Отговор
в отговор на q #12

Re: премахване на echo при require/include

къде пък видя някой да му го предлага това? бахти толко ли е трудно да се чете внимателно...

Отговор
в отговор на q #13

Re: премахване на echo при require/include

Че какво му е на подхода, ако файла е външен и нямаш достъп до него за редакция?

Отговор
в отговор на Tupcho #14

Re: премахване на echo при require/include

Да ползваш ob е принципно неправилно за твоя случай, но щом работи - остави.

Отговор
в отговор на Tupcho #15

Re: премахване на echo при require/include

въпроса е принципен и хората са прави да се ядосват. това че работи не значи че е правилния начин, не за друго, а щото свикваш да правиш нещата без да мислиш върху принципите и един ден нещо фундаментално бъркаш именно поради липсата на мислене. друг момент е да се замислиш кво става с тебе ако един прекрасен ден наследиш такъв скрипт, как би си обяснил логиката на този който го е написал?
в конкретния случай имаме файл на който сме му казали да плюе нещо на аутпута. после казваме на друг файл да пречи на първия файл да си плюе нещото дето му е казано да си го плюе. след тва ше почнем да търсим начин как да покажем тва дет принципно се показва, ма ние сме го спряли... предполагам става ясно за какво говоря :) а правилния подход би бил да се преработи инклуднатия скрипт така че да не ечи насам натам а да върне обект, променлива, константа, квото ти трябва, която да съдържа резултата от работата му.
АКО нямаш достъп до файла за редакция, тогава - да. само че ти чак сега споменаваш за това ограничение, мисля.

Отговор
в отговор на Tupcho #16

Re: премахване на echo при require/include

Ми не виждам причина щом като имаш достъп до него поне за четене, да не си го копнеш и модифицираш така, че да прави това което ти искаш. Разстоянието между това да принт-ваш нещо, и това да го вкараш в променлива и върнеш с return е има/няма два-три код.

Иначе както беше написал някой, да спираш да се прави нещо е по-трудния път. Максимата "Работи ли? Да. Не го пипай!" не винаги върши работа.

Поздрави.


Отговор
в отговор на mr.vain #17

Re: премахване на echo при require/include

В отговор на:

Ми не виждам причина щом като имаш достъп до него поне за четене, да не си го копнеш и модифицираш така, че да прави това което ти искаш.



Е да де ама не баш. И ти имаш достъп за четене до [линк], айде копни си го и го промени така че аутпута да без реклами !

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на тoшo #18

Re: премахване на echo при require/include

Понеже стана по-дълга темата искам да обясня.
Наистина напълно съм съгласен че ако аз пиша и двата файла, ще трябва да си ги направя като хората. В случая обаче не е така. Затова и написах "външен" файл, това само по себе си може да няма голям смисъл, но в контекста, съм си представял че ще разберете какво искам да ви кажа. Аз имам достъп до този файл, и мога да го променя, но не смятам че е редно.
Той не е писан от мен, Той работи в контескта на друга система, която ползвам. Хубаво хващам сега и го променям. Какво ще се получи трябва да ставам роб на другата система. Ако утре Сис админ-а реши да я ъпгрейдва, нещата се скапват!!! Трбява пак да хващам вече новия файл и да го променям. След 5 години мойе пак да ме извикат. Че ще трябва и да си спомням какво съм правил!!! Та имам достъп до файла, но неискам да го променям.

Благодаря за съвета, все пак.

Отговор
в отговор на ro6avia #19

Re: премахване на echo при require/include

В отговор на:

инклудвам външен файл, който извършва някакви операции и изкарва нещо на екрана. Какд а го накарам това, което изкарва на екрана да не го изкарва на екрана, а да ми го запише в променлива?




така като му чета първоначалното писание, май дружно сме се пообъркали за целта на занятието.

The include() statement includes and evaluates the specified file.

ако дърпам dir.bg няма да го evaluate, шото нещо смисъл не намирам.

на чивека му трябва fopen() просто, ма при тая формулировка...

П.С. упс, докат си изформулирам мойта си, то се появило разяснение - сега имаме достъп, ма не щем да променяме.
пич, подходи пак има няколко, важното е че имаш един дет работи :)

Редактирано от тoшo на

Отговор
в отговор на тoшo #20

Re: премахване на echo при require/include

ще ми е интересно да чуя и друг подход.
Благодаря

Отговор