Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem ze ścieżką dla funkcji spl_autoload_register
matti9410
post 12.02.2023, 21:32:53
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

Ostrzeżenie: (0%)
-----


Cześć!
Próbuję wczytać bibliotekę PhpWord za pomocą tutoriala z YT na serwerze localhost xampp wszystko działa fajnie i biblioteka się wczytuje.
Problem pojawia się na serwerze www - hosting unixstorm.
Pliki biblioteki trzymam w katalogu
"/home/xxx/domains/xxx.pl/public_html/wp-content/plugins/xxx/lib/PHPOffice/PhpWord/"

Kod gdzie wykorzystuje spl_autoload_register
  1. spl_autoload_register(function ($class) {
  2. $path = PLUGIN_PATH . "lib/";
  3.  
  4. if (is_file($path.$class.".php")) {
  5. echo "Plik istnieje";
  6. require_once $path.$class.".php";
  7. }else{
  8. echo "</br>Brak pliku </br>";
  9. echo $path.$class.".php </br>";
  10. }
  11. });
  12.  
  13. use \PHPOffice\PhpWord\PhpWord;
  14.  
  15. //$phpWord = new PhpWord();
  16.  
  17. //echo "<pre>";
  18. //print_r($phpWord);
  19. //echo "</pre>";


Gdy odkomentuje linie
  1. //$phpWord = new PhpWord();


wtedy strona odpowiada mi komunikatem
Kod
Brak pliku
/home/xxx/domains/xxx.pl/public_html/wp-content/plugins/xxx/lib/PHPOffice\PhpWord\PhpWord.php


Nie rozumiem dlaczego tak się dzieje, gdzie plik "PhpWord.php" fizycznie jest w tej lokalizacji.
Go to the top of the page
+Quote Post
nospor
post 13.02.2023, 09:28:02
Post #2





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




A probowales ustawic poprawna sciezke? Czyli nie
/home/xxx/domains/xxx.pl/public_html/wp-content/plugins/xxx/lib/PHPOffice\PhpWord\PhpWord.php

a:
/home/xxx/domains/xxx.pl/public_html/wp-content/plugins/xxx/lib/PHPOffice/PhpWord/PhpWord.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
matti9410
post 13.02.2023, 09:47:11
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

Ostrzeżenie: (0%)
-----


Ta końcówka
Kod
\PhpWord\PhpWord.php

generuje mi się sama automatycznie... nie wiem jak zmienić "\" na "/" ją zmienić
Go to the top of the page
+Quote Post
nospor
post 13.02.2023, 09:55:37
Post #4





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Jakie automatycznie... Sam ja generujesz o tutaj:

require_once $path.$class.".php";

uzyj str_replace i zamien \ na /


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
matti9410
post 13.02.2023, 14:53:46
Post #5





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

Ostrzeżenie: (0%)
-----


Jest lepiej, ale dziwnie wykonuje się poniższy skrypt bo mam odpowiedź

Kod
Hello
Plik istnieje
/home/xxx/domains/xxx.pl/public_html/testproject/lib/PHPOffice/PhpWord/PhpWord.php
Brak pliku


Tak jak by się nie wykonywał skrypt?

  1. <?php
  2.  
  3. echo "Hello </br>";
  4.  
  5. spl_autoload_register(function ($name_file) {
  6. //$path = PLUGIN_PATH . "lib/PHPOffice/PhpWord/";
  7. $path = str_replace("\\", "/", __DIR__ . "/lib/" .$name_file.".php");
  8.  
  9. if(is_file($path)){
  10. echo "Plik istnieje </br>";
  11. echo $path . "</br>";
  12. require_once $path;
  13. }else{
  14. echo "Brak pliku </br>";
  15. }
  16. });
  17.  
  18. use \PHPOffice\PhpWord\PhpWord;
  19.  
  20. $phpWord = new PhpWord();
  21.  
  22. echo "<pre>";
  23. print_r($phpWord);
  24. echo "</pre>";
  25.  
  26. echo "END </br>";
  27.  
  28. ?>


Ten post edytował matti9410 13.02.2023, 14:54:07
Go to the top of the page
+Quote Post
nospor
post 13.02.2023, 14:56:47
Post #6





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




No ale wyswietl $path gdy krzyczy ze brak pliku. Bedziesz widzial dokladnie czego nie ma


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
matti9410
post 13.02.2023, 15:03:48
Post #7





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

Ostrzeżenie: (0%)
-----


Zwraca

Kod
Hello
Plik istnieje
/home/xxx/domains/xxx.pl/public_html/testproject/lib/PHPOffice/PhpWord/PhpWord.php
Brak pliku
/home/xxx/domains/xxx.pl/public_html/testproject/lib/PhpOffice/PhpWord/Media.php


Nie wiem dlaczego zmieniła się tylko nazwa folderu Office z "PHPOffice" na "PhpOffice". plik media.php istnieje w tej lokalizacji.
Go to the top of the page
+Quote Post
nospor
post 13.02.2023, 15:06:11
Post #8





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Miedzy PHPOffice, a PhpOffice jest naprawde wielka roznica. To dwa rozne katalogi. I zakladam ze masz tylko jeden z nich.
Pewnie twoj plik PhpWord.php uzywa tego Media ze zlym namespace.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
matti9410
post 13.02.2023, 15:09:20
Post #9





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

Ostrzeżenie: (0%)
-----


Najlepsze jest to, że na localhost (xampp) nie ma takiego problemu i wszystko działa prawidłowo, a na hostingu już nie.
Masz może pomysł jak to naprawić?
Go to the top of the page
+Quote Post
nospor
post 13.02.2023, 15:10:06
Post #10





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Bo localhost pewnie masz windows.
Jak poprawic? No juz ci napisalem przeciez. Albo zmien nazwy katalogow, albo popraw odwolania w namespacach. Albo jedno albo drugie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
matti9410
post 13.02.2023, 15:13:38
Post #11





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

Ostrzeżenie: (0%)
-----


Dobra, można zamknąć temat zmieniłem nazwę z PHPOffice na PhpOffice i działa.
Dziękuję za pomoc! smile.gif.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 22:55