Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Curl - adres Url ze zmiennej?
Forum PHP.pl > Forum > Przedszkole
kaszanka
Hi,

Dlaczego taki kod wywala błąd
Parse error: syntax error, unexpected '"' on line 4
  1. <?php
  2. $adres = "moja_adres.pl";
  3. function curl_go( $COMMAND,$URL="http://$adres/curl.php" )
  4. {
  5. ...
  6. }
  7. ?>

a gdy wpisze:
  1. <?php
  2. function curl_go( $COMMAND,$URL="http://moja_adres.pl/curl.php" )
  3. ?>

to działa prawidłowo?
erix
AFAIK w domyślnych parametrach funkcji tak nie możesz podawać wartości.
kaszanka
hmm

To w takim razie jak zrobić gdy część adresu chce otrzytywać ze zmiennej poza funkcją curl_go, np z bazy danych?
erix
Daj trzeci parametr-referencję, skorzystaj z Registry, zrób sobie wczytywanie wewnątrz funkcji, możliwości jest sporo...
kaszanka
Próbowałem to rozwiązać w ten sposób lecz tym razem wywaliło błąd
Warning: Missing argument 2 for curl_go() in ...

  1. <?php
  2. $moj_adres = "jakas_domena";
  3. $URL="http://$moj_adres/curl.php";
  4.  
  5. function curl_go( $COMMAND, $URL )
  6. {
  7. ...
  8. }
  9. ?>
erix
Ale i tak musisz podać ten argument...

  1. <?php
  2. $asd = curl_go('asdasd', 'sda');
  3. ?>

gdzie sda, to ma być drugi parametr, ponieważ go zadeklarowałeś. Musisz go podać za każdym razem. Jeśli nie chcesz czegoś takiego - pozostaje rejestr albo inne przekazywanie zmiennej.
kaszanka
Zastrzelcie mnie ale i tak nie rozumiem ;/

Do tej pory miałem funkcję curla która łączyła się tylko z jednym adresem URL, teraz chce ją rozbudować by łączyła się z adresem aktualnie wyciągniętym przez danego usera z bazy.

Do tej pory miałem tak:
  1. <?php
  2. function curl_go( $COMMAND,$URL="http://adres_strony/curl.php" )
  3. {
  4. ...
  5. }
  6. ?>

a teraz chce by zamiast stałego wpisu
  1. <?php
  2. $URL="http://adres_strony/curl.php"
  3. ?>

adres_strony był jako zmienna która pobierana jest z bazy danych czyli coś mniej więcej takiego:
  1. <?php
  2. $adres_strony = "url_z_bazy";
  3. $URL="http://$strony/curl.php"
  4. ?>
erix
Ja wiem, co chcesz osiągnąć.

Ale tak łatwo się nie da - jako domyślny parametr musi być podana STAŁA wartość.

Rozwiązaniem pośrednim byłoby IMHO:
  1. <?php
  2. function curl_go( $COMMAND,$adres = null, $URL="http://%s/curl.php"){
  3. $URL = sprintf($URL, $adres);
  4. }
  5. ?>

Jeśli adres ten sam - jako drugi parametr podajesz null.
kaszanka
Zrobiłem jak zasugerowałeś jednak nadal mam ten sam błąd "Parse error: syntax error, unexpected '"' in"
zamarłem ;/
Nie wierze, że nie można tego prosto rozwiązać :|
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-2025 Invision Power Services, Inc.