Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP] problem z SPARQL w PHP
Forum PHP.pl > Forum > Przedszkole
-miaka-
Witam, pisze w sprawie SPARQLu (sieci semantyczne). Znalazłam artykuł Wstęp do SPARQL z wykorzystaniem RAP API dla PHP.

http://semantictechnology.eu/2010/02/wstep...ap-api-dla-php/

Wrzuciłam pliki na serwer semanticemployee.rdf z zawartością ze strony, plik.php oraz foldery z strony http://www.seasr.org/wp-content/plugins/me.../doc/index.html pod Download and Installation.

Zawartosc mojego pliku wyglada tak:

<?php
define("RDFAPI_INCLUDE_DIR", "C:\wamp\www\rdfapi-php\api\");
include("RDFAPI_INCLUDE_DIR"."RdfAPI.php");

$employees = ModelFactory::getDefaultModel();
$employees->load('semanticemployee.rdf');
$querystring = '
PREFIX vcard <http://www.w3.org/2001/vcard-rdf/3.0#>
SELECT ?fullName
WHERE { ?x vcard:FN ?fullName }';
echo $employees->sparqlQuery($querystring, 'HTML');
?>

a gdy go uruchamiam pisze o błędzie: Parse error: syntax error, unexpected T_STRING in C:\wamp\www\plik.php on line 3.

Może będzie wiedzieli co robię źle skoro wszystkie odwołania znajdują się w dobrych miejscach. Pisałam do tej osoby ale nie dostałam odpowiedzi.
blooregard
  1. include("RDFAPI_INCLUDE_DIR"."RdfAPI.php");


RDFAPI_INCLUDE_DIR to stała, zdefiniowana linijkę wyżej. Aby się do niej odwołać, musisz użyć jej nazwy bez cudzysłowu.

Zresztą, jest to w komunikacie błędu: "niespodziewana wartość typu STRING (czyli ciąg znaków) w linii 3"
-miaka-
Zrobiłam tak jak powiedziałeś:

  1. define("RDFAPI_INCLUDE_DIR", "C:\wamp\www\rdfapi-php\api\");
  2. include(RDFAPI_INCLUDE_DIR. "RdfAPI.php");


Nawet serwer ponownie uruchomilam a ten nadal swoje. Ciągle ten sam błąd.
blooregard
Już wiem smile.gif

Cytat
define("RDFAPI_INCLUDE_DIR", "C:\wamp\www\rdfapi-php\api\");


Usuń ostatniego slash'a, tego po 'api' smile.gif

I jeśli masz możliwość, zainstaluj sobie IDE do PHP z kolorowaniem składni, np. NetBeans, to pomoże Ci uniknąć podobnych błędów w przyszłości smile.gif
-miaka-
Faktycznie prosty blad, jednak na tym nie koniec...

Pisze min cos takiego
include(C:\wamp\www dfapi-php\apiRdfAPI.php) [function.include]: failed to open stream: Invalid argument in C:\wamp\www\plik.php on line 3

jednak nie rozumiem czemu ścieżke mi zmienil (a potem sie dziwi, ze nie moze otworzyc)

Skoro sciezka jest taka:
C:\wamp\www\rdfapi-php\api\RdfAPI.php

to czemu czyta to jako:
C:\wamp\www dfapi-php\apiRdfAPI.php
blooregard
Ta sama przyczyna: backslash przed 'r', co daje '\r' - znak kontrolny, tzw. powrót karetki.

A zobacz, czy zadziała Ci tak:

Cytat
C:/wampwww/rdfapi-php/api/RdfAPI.php
-miaka-
Jednak w takiej postaci pomogło:

  1. define("RDFAPI_INCLUDE_DIR", "C:/wamp/www/rdfapi-php/api/");


Ale mimo, że się wyswietla to pisze o przestarzałej funkcji (ale tylko w jednym miejscu) do parsowania plików rdf. Te pliki to tzw. biblioteki więc nie wiem czy można i jak je poprawiac bo sam fragment kodu nic nie da a cały plik ma 2000 kodu linii. Wiec nie wiem co mam z tym zrobic.

sunpietro
podstawowa wersja biblioteki korzysta ze starych metod PHP, jeśli znasz się na PHP (a widać, ze raczej niespecjalnie) to możesz je poprawić na nowsze odpowiedniki i wszystko będzie hulać. Ja tak zrobiłem i jest wszystko w porządku. Najczęściej chodzi o metody związane z regex.
-miaka-
Co ciekawe moj problem zniknął po wrzuceniu go na serwer w internecie (na swoje konto serwera uczelnianego).

Wcześniej zainstalowałam serwer domowy z programem wampserwer. Zastanawiam się co było przyczyna błedu. Czy stare biblioteki zainstalowane u mnie?

Owszem serwer uczelniany to dobra rzecz ale na przyszłość chciałabym pozbyć się tego typu błędów.
sunpietro
to pewnie dlatego, że na serwerze uczelni masz starszą wersję PHP
-miaka-
Sprawdzilam, prawda.

U mnie jest 5.3.8 a na serwerze uczelni 5.0.3 (na 100% nie jestem pewna ale jest to na pewno wersja 5). Przynajmniej już wiem na czym stoje.
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.