ZeTu
23.09.2012, 21:02:17
Witam, nie wiem czemu ale gdy chcę wyświetlić plik x.php w index.php to wyświetla mi "1" :/ zamiast zawartości pliku.
Plik x.php
jakis teskt i kod
Plik index.php
$m2 = include 'x.php';
Plik home.php
Jakis tekst i kod w srodku <--asd--> jakis kod i tekst
Jeśli w x.php będę miał tak:
<?php return("jakis teskt"); ?>
To będzie działać, ale ja tak nie chcę ponieważ w pliku x.php będzie znajdować się kod php i html.
Nie da się jakoś zastąpić tego return i żeby zamiast wpisywania kodu w return, w pliku index.php po prostu wyświetlało mi tak jak powinno?
Yorki
23.09.2012, 21:10:53
Funkcja include nie zwraca zawartości pliku
ZeTu
23.09.2012, 21:13:02
Wiem, chcę tylko żeby po wyświetleniu zawartości z pliku home.php zamieniło np. <--asd--> na <?php include(x.php); ?>, a innego sposobu nie znam
timon27
23.09.2012, 21:32:17
$i=0;
foreach($r as $w){
if($i==0) $i++; else include 'x.php';
}
ZeTu
23.09.2012, 21:36:39
No fajnie, a co jeśli mam więcej niż jedne <--asd-->? np. <--das--> <--bad--> i do każdego chcę osobny plik podpiąć?
timon27
23.09.2012, 22:04:08
Cytat(ZeTu @ 23.09.2012, 22:36:39 )

No fajnie, a co jeśli mam więcej niż jedne <--asd-->? np. <--das--> <--bad--> i do każdego chcę osobny plik podpiąć?
No to już zostaje ci tylko wyświetlać literka po literce...
$d=long($r); //jakaś funkcja zwracająca długość, zapomniałem jak się nazywa
for($i=0;$i<=$d;$i++){
if(substr($d,$i,5)=='<abc>') {include 'abc';$i+=5;} if(substr($d,$i,5)=='<aaa>') {include 'aaa';$i+=5;} }
Szymciosek
23.09.2012, 22:06:01
strlen ?
ZeTu
23.09.2012, 22:30:25
Timon27 to coś w ogóle nie działa :/
kyku
23.09.2012, 22:39:28
return nie służy do wyświetlania tekstu
index.php:
<?php include("2.php");
2.php:
<div>KOD HTML</div><?php ?>....
ZeTu
24.09.2012, 06:25:59
Kyku toś teraz dowalił ... Nie o to mi chodzi
Uriziel01
24.09.2012, 07:15:55
Jeżeli dobrze rozumiem, w stringu masz wielokrotnie zapisane sekcje w formacie '<--string-->','<--second_string-->' i chcesz aby zawartość tych tagów została zastapiona treścią z plików 'string.php' i 'second_string.php', czy dobrze Cię zrozumiałem ?
EDIT:
Może troszkę na wyrost, ale do czego chcesz tego użyć ? Bo nie wiem czy nie próbujesz stworzyć od nowa systemu template'ów (na pierwszy rzut oka tak to wygląda).
ZeTu
24.09.2012, 12:20:36
Bravo Uriziel01

Jedyny mądry który zrozumiał o co mi chodzi

wiesz może jak to zrobić? Bardzo mi to jest potrzebne do mojego CMS'a, którego właśnie projektuje, a nie zakończę go jeśli nie będę miał tego "systemu template'k", szukałem już w necie, ale żaden nie działał prawidłowo
redeemer
24.09.2012, 12:27:16
Bierzesz się za CMS nie znając podstaw. Skorzystaj z TWIG albo Smarty. Są to systemy szablonów, które działają i są "z internetu". Zresztą nawet nie wiem jak Ty to szukałeś
http://bit.ly/VwFXWL
ZeTu
24.09.2012, 12:32:39
Wiem, że istnieje Smarty, ale ja nie chcę tego używać. Chcę po prostu zrobić inaczej, nie tak jak wszyscy
redeemer
24.09.2012, 12:37:11
Pisałeś, że szukałeś w necie, ale żaden nie działał. Jak koniecznie chcesz zindywidualizować system szablonów w swoim CMS (co jest dużym błędem i nawet nie zdajesz sobie sprawy jakie problemy napotkasz po drodze) to możesz przecież możesz zobaczyć jak programiści z doświadczeniem to zrealizowali, bo przecież dostęp do kodu źródłowego jest.
Spawnm
24.09.2012, 12:38:39
Cytat(Yorki @ 23.09.2012, 22:10:53 )

Funkcja include nie zwraca zawartości pliku
Zwraca jeśli plik ma return, kilka fw opiera na tym swoje konfiguracje
ZeTu
24.09.2012, 13:17:02
To co zna ktoś odpowiedź na moje pytanie (problem)?
kyku
24.09.2012, 13:25:20
ZeTu
24.09.2012, 13:31:46
Próbowałem w eval i też nie działa :/
kyku
24.09.2012, 13:37:49
A jednak:
Najprostszy przykład:
index.php
<?
?>
plik2.php
// nie zaczynaj pliku od
<?php lub w index
.php zamien
eval($plik2) na
eval('?>'.$plik2)
$zmienna = "test";
?> abc <-- aaaa --> bbbb
Spawnm
24.09.2012, 13:40:13
Kyku - jesteś w stanie sensownie wyjaśnić po kij tutaj eval? Eval się nie używa.
Zetu, kod który podałeś powinien działać. Daj cho po file_get i zobacz co ci wczytuje,
może tam jest problem, a może w innej części kodu której nam nie pokazałeś.
kyku
24.09.2012, 13:42:50
Spawnm, on chce w templatkach mieć kod PHP i HTML. Dlatego też eval
ZeTu
24.09.2012, 14:00:43
Kyku tak jak napisałeś działa, ale jak w pliku index.php zamiast bbbb daje include, to wyskakuje 1
$m2 = include 'i.php' ;
A dokładnie wyskakuje tak:
$zmienna = "test"; echo $zmienna; ?> abc
<-- aaaa
--> bbbbtest abc
1 bbbb
kyku
24.09.2012, 14:06:02
nie możesz użyć instrukcji przypisania (znaku =) do include, który dołącza jakiś inny skrypt (no chyba, ze uzywasz tam return ale i tak dziwne rozwiazanie)
Cytat
(Handling Returns: include returns FALSE on failure and raises a warning. Successful includes, unless overridden by the included file, return 1. It is possible to execute a return statement inside an included file in order to terminate processing in that file and return to the script which called it. Also, it's possible to return values from included files. You can take the value of the include call as you would for a normal function. This is not, however, possible when including remote files unless the output of the remote file has valid PHP start and end tags (as with any local file). You can declare the needed variables within those tags and they will be introduced at whichever point the file was included.)
po prostu:
include łączy ze sobą jakieś skrypty
file_get_contents pobiera zawartość pliku (to możesz do zmiennej przypisać)
Zapoznaj się dokładniej z
include i
file_get_contents
ZeTu
24.09.2012, 15:04:17
Ok, już sobie poradziłem dzięki za pomoc kyku, zrobiłem tak jak w tym kodzie co napisałeś tylko zmieniłem troszkę i działa wielkie dzięki
Uriziel01
25.09.2012, 08:00:59
Banał. Proszę bardzo, prosty przyklad

<?php
$template_content = '<--header-->To jest testowa tresc strony <br/><--footer-->';
$template_parser = new template_parser();
echo $template_parser->parse_template_blocks($template_content);
class template_parser
{
private $prefix = '<--';
private $suffix = '-->';
function parse_template_blocks($content)
{
preg_match_all($this->prefix .'([a-zA-Z]+)' .$this->suffix, $content, $matches); foreach($matches[1] AS $match)
{
}
return $content;
}
}
?>
EDIT:
WTF? O.o Chrome stwierdził że przywrócenie karty z wczoraj to całkiem dobry pomysł. Także moja odpowiedź 'lekko' spóźniona.
lukaskolista
25.09.2012, 08:32:11
@kyku: z tym eval() to troszke Cie ponioslo

Nigdy przenigdy eval()

include 'templates/'.$file.'.php';
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.