wynik działania skryptu do zmiennej w php

0

Witam, mam problem i strafiłem dużo czasu na przeglądaniu wielu forum, ale nic nie znalazłem, a myślę że problem zainteresuje innych

chciałbym do zmiennej php przypisać wynik działania skryptu javy
tak to mniej więcej wyglada:

<? $ile = "<script language="JavaScript" src="http://www.polchat.pl/ile/?room=MDK Zyrardow"></script>"; if ($ile >= "5") { print ("Liczba Gości na czacie $ile"); } else { print ("Liczba Gości na czacie $ile - nie warto wchodzić"); } ?>

Jeśli wpiszesz w przeglądarkę adres
http://www.polchat.pl/ile/?room=MDK Zyrardow
to skrypt w javie zwraca wartość - document.write('0');

Zatem samo umieszczenie tego skryptu w htmlu po prostu wyświetli liczbę z nawiasu.
A ja chciałbym zrobić tak, aby uzyskać z tego skrytpu samą wartość.
Takie przypisanie do zmiennej tego skryptu nic nie daje bo skrypt się nie wykona.

Pomocy, nasuńcie mnie jakoś na rozwiązanie
Pozdrawiam

0

...będzie trochę na około :) wstaw sobie definicję funkcji PostVars z:
http://4programmers.net/faq.php/id=368 (metoda POST nie jest potrzebna tylko nie szkodzi w tym przypadku i skróci moją odpowiedź)

<?php
  $str = PostVars('http://www.polchat.pl/ile/?room=MDK', array());
  ereg("document\.write\('([0-9]+)'\);", $str, $res);
  echo $res[1];
?>
0

kurde :) aż tak obcykany nie jestem, ale dzięki za info

rzeczywiście na około, a możesz jakoś bardziej rozwinąć ten problem ?

będę wdzięczny za wszelką pomoc :)

0

Na około to była moja wersja ;P

<? 
$ile = implode('', file('http://www.polchat.pl/ile/?room=MDK Zyradow")); 
$ile =substr_replace($ile, "" , 0, 16); 
$ile =substr_replace($ile, "" , strlen($ile)-3, 3); 
if ($ile >= 5) {echo "Na czacie jest $ile osób";} 
else 
{echo "Czat jest prawie pusty"; }; 
?> 

Ale może spróbujmy połączyć wersję moją i piechnata (zwłaszcza, że moja wymaga, by odczyt plików zezwalał na zdalne pliki, a to nie zawsze jest dozwolone (tzn nie na wszystkich serwerach)):

<?php
  $str = PostVars('http://www.polchat.pl/ile/?room=MDK%20Zyradow', array());
  ereg("document\.write\('([0-9]+)'\);", $str, $res);
  if ($res[1] >= 5) {
    echo "Na czacie jest $ile osób"; } 
  else {
    echo "Czat jest prawie pusty"; 
  }; 

?>
0

a po co dajecie takie mało zrozumiałe kody, wystarczy tak - ładnie i zrozumiale

<?
 $plik=file('http://www.polchat.pl/ile/?room=MDK%20Zyrardow');
 ereg("[0-9]{1,}",chop($plik[0]),$ile);
 $ile=(int)$ile[0];

 if ($ile >= 5) { print ("Liczba Gości na czacie $ile"); }
 else { print ("Liczba Gości na czacie $ile - nie warto wchodzić"); }

// 1 linia - pobranie zawartości pliku http://www.polchat.pl/ile/?room=MDK%20Zyrardow
// 2 linia - zapisanie do zmiennej $ile pierwszą znalezioną liczbę w pierwszym indeksie tablicy $plik (pierwsza linia pliku), chop obcina znaki końca linii
// 3 linia - zamiana pierwszego indeksu tablicy $ile (znaleziona liczba) na typ integer (liczba całkowita)
?>

BTW Jeśli przy liczbie ludzi <5 wyświetli informacje że nie warto wchodzić na czat to ten czat nigdy nie będzie mieć więcej niż 5 osób bo nikt nie wejdzie ;P

I żeby mi tu nikt nie wchodził że nie należy używać "file" bo "wychodzi ze standardu"

//grrrrr... zapomnialem ze file() dziala jak automat [wstyd] - m.p

0

// 3 linia - zamiana pierwszego indeksu tablicy $ile (znaleziona liczba) na typ integer (liczba całkowita)

// 4 linia - porównanie typu całkowitego z TEKSTEM "5" :):)

Na początku też dawałem file i mu nie działało - a obcinałem bez wyrażeń regularnych bo skrypt, na którym bazowałem był z czasów gdy nie wiedziałem co to są :) (dzisiaj tylko nie zawsze pamiętam jak je budować ;P)

0

podsumowując:

zacząłem jeszcze raz analizować wszystkie nadesłane przez Was skrypty i ostatecznie wybrałem ten pochodzący od Adamo - działa i jest OK

<? $plik = file('http://www.polchat.pl/ile/?room=MDK%20Zyrardow'); ereg ("[0-9]{1,}",chop($plik[0]),$ile); $ile = (int)$ile[0]; if ($ile >= "5") { print ("Liczba Gości na czacie: $ile"); } else { print ("Liczba Gości na czacie: $ile - nie warto wchodzić"); } ?>

Jak się okazało wcześniej brakowało %20 zamiast spacji :)
Zatem jeszcze raz dzięki wszystkim za dobre chęci i pomoc.


Ludzie wstawiajcie do siebie na strony !!! :)

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