Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tresc generowana dynamicznie z zewnatrz
Forum PHP.pl > Forum > Gotowe rozwiązania
davvid
Witam
Ostatnio pisałem o problemie z załączaniem tekstu do pliku htm z pliku z zewnatrz, ktory jest skryptem php. Wiem juz, zeby w pliku html umiescic: <script language="Javascript" src="http://serwer/plik.php"></script>
a w pliku php:
Kod
<? echo "document.write('cos')"; ?>

I działa, ale... gdy probuje rozbudować plik php zeby np generowal tabele na bazie jakis tam danych, plik htm (ktory ma to wyswietlić) wyrzuca mi błąd...
plik php
Kod
<?

echo "document.write('";

echo "<table>";

echo "<tr><td>Tytul</td></tr>";

  $number_of_files = "1";

  $counter = "10";

    while ($number_of_files <= $counter)

  {

   $open_file = fopen("katalog/$number_of_files", "r");

   echo "<tr>";

    $descripton = fgets($open_file, 1024);

    echo "<td>$descripton</a></font></td>";

          echo "</tr>";    

   fclose($open_file);

   $number_of_files++;

  }

   echo "<tr>";

   echo "</table>";

echo "')";

?>

Jeżeli możecie mi jakoś pomóc to bardzo proszę...
Dzięki
adwol
Cytat
gdy probuje rozbudować plik php zeby np generowal tabele na bazie jakis tam danych, plik htm (ktory ma to wyswietlić) wyrzuca mi błąd...

Po pierwsze uzywaj BBCode'u, po drugie napisz jaki błąd.
davvid
Przeglądarka pokazuje, że na stronie wystąpiły błędy... jest tylko napisane: Błąd składni.
Próbuje na różne sposoby ale zawsze to samo.
Pozdrawiam.
spenalzo
Po pierwsze sprawdź, czy nie ma cudzysłowów lub apostrofów.
Jeżeli są, to javascript kończy wtedy instrukcję i dlatego może wywalać błąd.
Być może brakuje średnika w ostatniej linii, tam gdzie echo, czyli mogłoby być tak:
[php:1:6bafe4aaf9]<?php
echo "');";
?>[/php:1:6bafe4aaf9]
DeyV
znacznie pomogłoby ci oddzielanie kodu html i js od php, przy pomocy zamykania i otwierania bloku php.
Wtedy nie martwisz sie o to, by użyć prawidłowych ' " oraz mozęsz liczyć na podświetlanie wszystkich składni (co oczywiście zależy od edytora, ale... )
davvid
Dalej błąd, ale tym razem wyskakuje:
Brak zakończenia stałej znakowej...
Pozdrawiam.
davvid
Witam ponownie...
Powoli usuwałem i wklejałem część tekstu i doszedłem do wniosku, że wywala błąd podczas gdy występuje wypisanie wartości pobieranej z pliku.. jeżeli zmienną zdefiniuje w skrypcie to nie ma z tym problemu, ale jak zaczynam pobierać dane z pliku i próbuje je wyświetlić zaczyna się sypać... może coś wam to podpowie, bo ja już chyba więcej nie dam rady wysnioskować

Kod
$open_file = fopen("public/network/$number_of_files", "r");

    $descripton = fgets($open_file, 1024);

    $http_adress = fgets($open_file, 1024);

    <a href="$http_adress" target="_blank">$descripton</a>";

wlasnie po tej linijce wywala

Zaznaczam, że plik z którego oczytuje wartości wygląda przykładowo tak:
Kod
Opis strony

http://www.adres.com.pl


Dzieki
Pozdrawiam
spenalzo
Tak jak napisałem sprawdź czy nie masz gdzieś w ładowanym pliku cudzysłowów czy apostrofów.
davvid
Witam
W pliku znajduje się tylko czysty tekst, bez " ani '.
Ale zauważyłem coś dziwnego. Mianowicie jak odczytuje linijka po linijce to na stronie wyświetli bezbłędu tylko ostatnią linię. Jeżeli każe wyświetlić mu którąś wcześniejszą wyskakuje błąd składni (to co zwylke). Także może jest to kwestia kończenia lini??
Dodanie do pliku robie w następujący sposób:
Kod
$file = fopen("katalog/plik", "w+");

fputs($file, "opisnhttp://www.adres.com.pl/");

fclose($file);

Może to właśnie robię nieprawidłowo?
Zauważyłem też, że po wyświetleniu samego pliku php:
Kod
<? (...)

$descripton = fgets($open_file, 1024);

$http_adress = fgets($open_file, 1024);

echo "$descripton,$http_adress";

?>

wyświetla mi dane ale ze spacją pomiędzy nimi (co nie powinno się pojawiać i może to właśnie jest w jakiś sposób odpowiedzialne za późniejsze błędy)
Co z tym zrobić? Może znacie jakiś inny sposób na dodanie danych do pliku, linia po lini, a następnie jego odczytywanie.
Pozdrawiam
davvid
No i udało się w końcu...
Po prostu usunąłem ostatni znak:
Kod
$description = substr("$description", 0, -1);

I po błędzie. Niestety musiałem tak robić z każda linią po odczytaniu, za wyjątkiem ostatniej.
Nie wiem dalej dlaczego nie działało wcześniej.
Pozdrawiam i dzięki za pomoc.
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.
Invision Power Board © 2001-2024 Invision Power Services, Inc.