uruchamianie plikow w katalogu

0

Witam Serdecznie,

poczatkuje z programowaniem i mam klina ktory mnie meczy, chcialbym zrobic plik ktory odpala inne pliki z katalogu ale jak zrobilem:

<?php include ('plik1.php'); include('plik2.php'); include('plik3.php'); ?>

to wykonuje sie tylko ten pierwszy, a reszta stoi, dlaczego? dodam jeszcze ze kazdy z tych plikow przelicza okolo 20sekund.

Moze mi ktos w tym pomoc?

1

A mógłbyś załączyć także kod pozostałych plików?
Ewentualnie możesz też spróbować czegoś takiego:

$output = shell_exec("php plik1.php"); 
var_dump($output);
//itp.
2

Tak, jak napiasł @MasterOf - bez zawartości tych plików ciężko coś napisać, to będą jedynie domysły. Niemniej do głowy przychodzą mi dwie rzeczy:
1) w pierwszym pliku są jakieś błędy, które skutecznie wywalają całość, wiec skoro duży ZONK następuje w pierwszym includowanym pliku, to logiczne jest, że do wykonania kolejnych może nie dojść
2) piszesz, że każdy z plików wykonuje się ok. 20 sekund. Każdy serwer z PHP ma w swoich opcjach różne parametry dotyczące dopuszczalnego obciążenia procesora, zużycia pamięci, a także m.in. czasu wykonania danego skryptu. Być może po prostu przekraczasz ten czas, przez co skrypt jest ubijany.

Żeby na szybko to zweryfikować, wywal/zakomentuj treść plików plik1.php, 2 i 3, a wstaw tam jedynie coś w stylu echo 'pierszy' w pierwszym pliku, echo 'drugi' w drugim i tak dalej. A potem odpal ten "główny" skrypt, który dołącza/wczytuje te mniejsze pliki i zobacz, czy coś się w ogóle pojawi. Jeśli będziesz miał wyświetlone te komunikaty, to znaczy, że pliki są poprawnie dołączane, a problem tkwi gdzieś w ich treści.

0
cerrato napisał(a):

Tak, jak napiasł @MasterOf - bez zawartości tych plików ciężko coś napisać, to będą jedynie domysły. Niemniej do głowy przychodzą mi dwie rzeczy:
1) w pierwszym pliku są jakieś błędy, które skutecznie wywalają całość, wiec skoro duży ZONK następuje w pierwszym includowanym pliku, to logiczne jest, że do wykonania kolejnych może nie dojść
2) piszesz, że każdy z plików wykonuje się ok. 20 sekund. Każdy serwer z PHP ma w swoich opcjach różne parametry dotyczące dopuszczalnego obciążenia procesora, zużycia pamięci, a także m.in. czasu wykonania danego skryptu. Być może po prostu przekraczasz ten czas, przez co skrypt jest ubijany.

Żeby na szybko to zweryfikować, wywal/zakomentuj treść plików plik1.php, 2 i 3, a wstaw tam jedynie coś w stylu echo 'pierszy' w pierwszym pliku, echo 'drugi' w drugim i tak dalej. A potem odpal ten "główny" skrypt, który dołącza/wczytuje te mniejsze pliki i zobacz, czy coś się w ogóle pojawi. Jeśli będziesz miał wyświetlone te komunikaty, to znaczy, że pliki są poprawnie dołączane, a problem tkwi gdzieś w ich treści.

Zrobilem jak mowisz, pierwszy plik wykonuje sie robi obliczenia i konczy z komunikatem, ale dla nastepnych juz nic, tak jakby zrobil tylko ten pierwszy(to znaczy zrobil tylko ten pierwszy), nawet jak zmienie kolejnosc najpierw plik2 a potem plik1 to ten plik 2 sie wykona a znowu plik1 nie

edit1:
gdy dalem wszedzie po /**/ echo 1,2,3 to wszystko funkcjonuje, wyglada na to ze moje pliki podliczeniowe zajmuja duzo czasu, jest moze jakas mozliwosc zebym mogl je uruchamiac tak zeby chociaz jeden po drugim sie uruchamialy?

0

Jeśli rzeczywiście przyczyną wywalania się skryptu jest przekroczony czas, spróbuj sobie ten limit wydłużyć - https://www.php.net/manual/en/function.set-time-limit.php

When called, set_time_limit() restarts the timeout counter from zero. In other words, if the timeout is the default 30 seconds, and 25 seconds into script execution a call such as set_time_limit(20) is made, the script will run for a total of 45 seconds before timing out.

1

Zamiast includować coraz więcej plików możesz użyć autoload ;)

0
czysteskarpety napisał(a):

Zamiast includować coraz więcej plików możesz użyć autoload ;)

a jest do tego jakis poradnik?

2
kiros napisał(a):
czysteskarpety napisał(a):

Zamiast includować coraz więcej plików możesz użyć autoload ;)

a jest do tego jakis poradnik?

https://pl.wikibooks.org/wiki/PHP/Automatyczne_%C5%82adowanie
https://lukasz-socha.pl/php/automatyczne-ladowanie-plikow/

1 użytkowników online, w tym zalogowanych: 0, gości: 1