/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Tilgå PEAR
Fra : Lars Olesen


Dato : 03-04-04 16:23

Hvordan tilgår man PEAR, når det nu er en del af standardinstallationen?
Altså hvordan require filer fra PHP; hvilket bibliotek ligger de i pr.
default?

--
Lars Olesen
Konkurrence på <http://www.fodboldenslegestue.dk>
Kan det gøres bedre? Navigation og brugervenlighed!

 
 
Jonas Koch Bentzen (03-04-2004)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 03-04-04 17:09

Lars Olesen skrev:

> Hvordan tilgår man PEAR, når det nu er en del af standardinstallationen?
> Altså hvordan require filer fra PHP; hvilket bibliotek ligger de i pr.
> default?

Hvis det f.eks. er PEAR DB, man skal bruge, så skriver man bare

require_once('DB.php');

....og så har man selvfølgelig sørget for, at mappen ved navn PEAR ligger i
en mappe, som er i PHP's include_path. include_path kan sættes i php.ini,
httpd.conf, .htaccess eller selve scriptet.

På Unix/Linux er include_path som standard sat til /usr/local/lib, hvori
PEAR-mappen bliver installeret, så det går helt automatisk. På Windows er
det muligt, man selv skal sætte include_path.

Se også http://pear.php.net/manual/en/

--
- Jonas Koch Bentzen

http://understroem.dk/
http://findhim.com/

Lars Olesen (03-04-2004)
Kommentar
Fra : Lars Olesen


Dato : 03-04-04 17:51

Jonas Koch Bentzen wrote:

> Hvis det f.eks. er PEAR DB, man skal bruge, så skriver man bare
>
> require_once('DB.php');

Øv, jeg får følgende, hvis jeg forsøger ovenstående. Så kan det vel ikke
lade sig gøre?
---
Warning: main(): SAFE MODE Restriction in effect. The script whose
uid/gid is 1212/1212 is not allowed to access /usr/local/lib/php/DB.php
owned by uid/gid 0/0 in /web/www.legestue.net/www/info.php on line 11

Warning: main(DB.php): failed to open stream: No such file or directory
in /web/www.legestue.net/www/info.php on line 11

Fatal error: main(): Failed opening required 'DB.php'
(include_path='.:/usr/local/lib/php') in
/web/www.legestue.net/www/info.php on line 11
---

> ...og så har man selvfølgelig sørget for, at mappen ved navn PEAR ligger i
> en mappe, som er i PHP's include_path. include_path kan sættes i php.ini,
> httpd.conf, .htaccess eller selve scriptet.

Jeg har et webhotel, så jeg har kun adgang til .htaccess. Hvordan sætter
man et include_path heri?

Kan man egentlig sætte flere include_paths? Fx til sine egne funktioner
og et andet til PEAR.

--
Lars Olesen
Konkurrence på <http://www.fodboldenslegestue.dk>
Kan det gøres bedre? Navigation og brugervenlighed!

Jonas Koch Bentzen (04-04-2004)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 04-04-04 05:06

Lars Olesen skrev:

> Jonas Koch Bentzen wrote:
>
>> Hvis det f.eks. er PEAR DB, man skal bruge, så skriver man bare
>>
>> require_once('DB.php');
>
> Øv, jeg får følgende, hvis jeg forsøger ovenstående. Så kan det vel ikke
> lade sig gøre?

Jo - bare flyt PEAR-filerne (kan downloades på pear.php.net) til et sted, du
har adgang til.

> Jeg har et webhotel, så jeg har kun adgang til .htaccess. Hvordan sætter
> man et include_path heri?

Se i PHP-manualen. Der står bl.a. noget under ini_set().

--
- Jonas Koch Bentzen

http://understroem.dk/
http://findhim.com/

Ulrik Nielsen (04-04-2004)
Kommentar
Fra : Ulrik Nielsen


Dato : 04-04-04 09:16

Lars Olesen wrote:
>
> Kan man egentlig sætte flere include_paths? Fx til sine egne funktioner
> og et andet til PEAR.

jep, ini_set('/sti/1:/sti/1:/sti/3:.');

--
>> ulrik nielsen
excuse of the day : Sand fleas eating the Internet cables
from bofh : http://www.cs.wisc.edu/~ballard/bofh/

Ulrik Nielsen (04-04-2004)
Kommentar
Fra : Ulrik Nielsen


Dato : 04-04-04 10:33

Ulrik Nielsen wrote:
> Lars Olesen wrote:
>
>>
>> Kan man egentlig sætte flere include_paths? Fx til sine egne
>> funktioner og et andet til PEAR.
>
>
> jep, ini_set('/sti/1:/sti/1:/sti/3:.');

errr... havde vidst liiige hovedet under armen...

ini_set('include_path','/sti/1:/sti/1:/sti/3:.');

skulle det jo self. være

--
>> ulrik nielsen
excuse of the day : Insert coin for new game
from bofh : http://www.cs.wisc.edu/~ballard/bofh/

Tommy Ipsen (06-04-2004)
Kommentar
Fra : Tommy Ipsen


Dato : 06-04-04 15:31

Ulrik Nielsen wrote:

> Ulrik Nielsen wrote:
>
>> Lars Olesen wrote:
>>
>>>
>>> Kan man egentlig sætte flere include_paths? Fx til sine egne
>>> funktioner og et andet til PEAR.
>>
>>
>>
>> jep, ini_set('/sti/1:/sti/1:/sti/3:.');
>
>
> errr... havde vidst liiige hovedet under armen...
>
> ini_set('include_path','/sti/1:/sti/1:/sti/3:.');

Man kan med fordel bruge konstanterne PATH_SEPARATOR og DIRECTORY_SEPARATOR da disse tilpasses
afhængig af hvilket OS koden afvikles på. Dermed slipper man for problemer med ";" vs. ":" og "/"
vs. "\" (Udvikler selv på Windows og kører i drift på linux - koden fungerer begge steder uden
tilpasning!)

Mvh Tommy

Lars Olesen (06-04-2004)
Kommentar
Fra : Lars Olesen


Dato : 06-04-04 15:43

Tommy Ipsen wrote:

> Man kan med fordel bruge konstanterne PATH_SEPARATOR og
> DIRECTORY_SEPARATOR da disse tilpasses afhængig af hvilket OS koden
> afvikles på. Dermed slipper man for problemer med ";" vs. ":" og "/" vs.
> "\"

Vil du lige forklare den præcise brug?

--
Lars Olesen
Kan det gøres bedre? Struktur, navigation og brugervenlighed!
Betingelser findes på <http://www.fodboldenslegestue.dk>
Forslag afleveres inden 1. juli 2004

Tommy Ipsen (06-04-2004)
Kommentar
Fra : Tommy Ipsen


Dato : 06-04-04 15:47

Lars Olesen wrote:

> Tommy Ipsen wrote:
>
>> Man kan med fordel bruge konstanterne PATH_SEPARATOR og
>> DIRECTORY_SEPARATOR da disse tilpasses afhængig af hvilket OS koden
>> afvikles på. Dermed slipper man for problemer med ";" vs. ":" og "/"
>> vs. "\"
>
> Vil du lige forklare den præcise brug?

Eksempel:

// define path to smarty directory
define('SMARTY_DIR', BASEDIR . 'smarty' . DIRECTORY_SEPARATOR . 'libs' . DIRECTORY_SEPARATOR);

// enabling includes from include and pear directory while preserving old value
ini_set('include_path',
BASEDIR.'include'.PATH_SEPARATOR.BASEDIR.'modules'.PATH_SEPARATOR.BASEDIR.'pear'.PATH_SEPARATOR.ini_get('include_path'));

Man bruger altså disse systemkonstanter i stedet for \/;: og de tilpasses automatisk afhængig af OS.

Mvh Tommy

Lars Olesen (06-04-2004)
Kommentar
Fra : Lars Olesen


Dato : 06-04-04 16:01

Tommy Ipsen wrote:

> // enabling includes from include and pear directory while preserving
> old value
> ini_set('include_path',
> BASEDIR.'include'.PATH_SEPARATOR.BASEDIR.'modules'.PATH_SEPARATOR.BASEDIR.'pear'.PATH_SEPARATOR.ini_get('include_path'));

Er der egentlig nogen ulemper ved at bruge ini_set til at sætte flere
forskellige include-biblioteker? Altså er det smarteste at lave den
direkte sti

include($_SERVER['DOCUMENT_ROOT'] . "/includes/functions.php");
include($_SERVER['DOCUMENT_ROOT'] . "/core/functions.php");

Eller kan man lige så godt lave en ini_set?

--
Lars Olesen
Kan det gøres bedre? Struktur, navigation og brugervenlighed!
Betingelser findes på <http://www.fodboldenslegestue.dk>
Forslag afleveres inden 1. juli 2004

Ulrik Nielsen (06-04-2004)
Kommentar
Fra : Ulrik Nielsen


Dato : 06-04-04 15:52

Lars Olesen wrote:
> Tommy Ipsen wrote:
>
>> Man kan med fordel bruge konstanterne PATH_SEPARATOR og
>> DIRECTORY_SEPARATOR da disse tilpasses afhængig af hvilket OS koden
>> afvikles på. Dermed slipper man for problemer med ";" vs. ":" og "/"
>> vs. "\"
>
>
> Vil du lige forklare den præcise brug?
>

jooh,

$inc_path_1 = DIRECTORY_SEPARATOR .
'sti' .
DIRECTORY_SEPARATOR .
'til' .
DIRECTORY_SEPARATOR .
'dir';

vil gi dig "/sti/til/dir" hvis du er på en unix og
"\sti\til\dir" hvis du er på en windoez...

prøv evt.

<?php
print_r(get_defined_constants());
?>

for at se hvilke konstanter du har tilrådighed.
og så er http://dk2.php.net/manual/en/ og google din ven ;)


--
>> ulrik nielsen
excuse of the day : You need to install an RTFM interface.
from bofh : http://www.cs.wisc.edu/~ballard/bofh/

Lars Olesen (06-04-2004)
Kommentar
Fra : Lars Olesen


Dato : 06-04-04 16:08

Ulrik Nielsen wrote:

> prøv evt.
>
> <?php
> print_r(get_defined_constants());
> ?>

Er disse konstanter de samme på alle installationer af PHP, ellers er
det jo ikke så smart at bruge dem.

> for at se hvilke konstanter du har tilrådighed.
> og så er http://dk2.php.net/manual/en/ og google din ven ;)

Ved det Nu lagde han det imidlertid lige på bane, og så var det jo rart
måske at få lidt at vide om hans brug af dem Jeg har aldrig set brugen
af dem i nogen eksempler før? :D


--
Lars Olesen
Kan det gøres bedre? Struktur, navigation og brugervenlighed!
Betingelser findes på <http://www.fodboldenslegestue.dk>
Forslag afleveres inden 1. juli 2004

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste