[PHP] If url contains X then do Y

Pagina: 1
Acties:
  • 1.252 views

Acties:
  • 0 Henk 'm!

  • IMarks
  • Registratie: Juli 2011
  • Laatst online: 19:13
Ik ben bezig voor mijn website en wil meedere subdomeinen gebruiken, hiervoor heb ik een topbar gemaakt waar je door middel van iconen kan switchen, nu wil ik maken dat als je op de desbetreffende sub url ben dat het icoon is outer glow heeft.

Ik zat te bedenken voor de volgende code maar weet niet precies hoe hem uit te schrijven in php
<?php
If $_SERVER['PHP_SELF'] "contains em"
{
$image = Icon_1_glow.jpg
} else {
$image = icon_1_default.jpg
?>

nou ben ik niet heel bekend met php ft. urls ik heb op google verschillende zoek tags gebruikt maar kwam niet op gelijke code/wensen uit.

misschien dat iemand hier iets weet.

bijvoorbaat dank.

[ Voor 3% gewijzigd door IMarks op 29-08-2011 10:38 ]


Acties:
  • 0 Henk 'm!

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 15-09 20:20
preg_match gebruiken? (of een van de varianten en aanverwanten)

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Een if is een if en een url is in de basis gewoon een string, dus ik snap niet helemaal wat er niet zou lukken? :)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 14:22

RMX

PHP:
1
2
3
4
$url = 'www.tweakers.net/nieuws/bla/';
if(strpos($url,'/bla/')) {
 zoiets?
}

Acties:
  • 0 Henk 'm!

  • Koetjeboe
  • Registratie: Maart 2002
  • Laatst online: 14:00

Koetjeboe

Boe, zegt de koe

RMX schreef op maandag 29 augustus 2011 @ 10:41:
PHP:
1
2
3
4
$url = 'www.tweakers.net/nieuws/bla/';
if(strpos($url,'/bla/')) {
 zoiets?
}
Kleine tip bij deze oplossing, in dit geval niet heel erg belangrijk maar in het algemeen zou ik als je strpos gebruikt jezelf aanleren om het altijd zo te doen:

PHP:
1
2
3
4
$url = 'www.tweakers.net/nieuws/bla/';
if(strpos($url,'/bla/') !== false) {
 zoiets?
}


Aangezien strpos ook gewoon 0 terug kan geven, wat PHP dan weer ziet als false.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
RMX schreef op maandag 29 augustus 2011 @ 10:41:
PHP:
1
2
3
4
$url = 'www.tweakers.net/nieuws/bla/';
if(strpos($url,'/bla/')) {
 zoiets?
}
Nee, als $url nu zou beginnen met '/bla/', dan ga je hem niet vinden. De functie strpos() geeft dan namelijk 0 terug, wat wordt gezien als false.

Het moet zo:
PHP:
1
2
3
4
$url = 'www.tweakers.net/nieuws/bla/';
if(strpos($url,'/bla/') !== false) { 
 // /bla/ is gevonden
}

Acties:
  • 0 Henk 'm!

  • IMarks
  • Registratie: Juli 2011
  • Laatst online: 19:13
dit zijn variable = set scripts, hij moet het van de huidige url gebruiken en het doen voor het subdomein. gelieve als kan ook echt puur alleen subdomein controleren maar mag ook over de hele url mis het ook werkt voor de subdomein, want al deze script lijken naar mijn weten niet het subdomein te doen.

Acties:
  • 0 Henk 'm!

  • Koetjeboe
  • Registratie: Maart 2002
  • Laatst online: 14:00

Koetjeboe

Boe, zegt de koe

IMarks schreef op maandag 29 augustus 2011 @ 10:50:
dit zijn variable = set scripts, hij moet het van de huidige url gebruiken en het doen voor het subdomein. gelieve als kan ook echt puur alleen subdomein controleren maar mag ook over de hele url mis het ook werkt voor de subdomein, want al deze script lijken naar mijn weten niet het subdomein te doen.
Misschien een idee om met bovenstaande tips even zelf aan de slag te gaan? We hoeven het niet kant en klaar voor te kauwen toch? Als je bijvoorbeeld even de $_SERVER print

(
PHP:
1
print_r($_SERVER);

)

en dat combineert met bovenstaande tips dan moet je toch een heel eind kunnen komen.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
We gaan t niet helemaal voorkauwen, wat moet het nu precies doen? Je bent de functie 'strpos' tegengekomen in de voorbeelden bijvoorbeeld en de $_SERVER variabele had je al gevonden. Ga die 2 dingen nu eens uitzoeken en met elkaar combineren.

Acties:
  • 0 Henk 'm!

  • IMarks
  • Registratie: Juli 2011
  • Laatst online: 19:13
normaal gesprokken zie je op fora ook dat ze jou code converteren, ik heb zelf de code aangeleverd van hoe ik het opgebouwd wil hebben en aangeleverd waar ik niet uit komt ect, ik hoef dus niet alles voorgekauwt te hebben maar een simpele assitentie is niet veel gevraagd lijkt me, deze code zijn voor mij totaal onbekend en voor jullie blijkbaar wel dus het lijk me niet zo moeilijk om even de strpos op de juiste locatie toe te voegen en alle overige suggesties als preg_match bijv.

Acties:
  • 0 Henk 'm!

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 15-09 20:20
Je kunt natuurlijk ook verkorte if statements gebruik zoals :

echo (statement ? true_waarde : false_waarde);
$var = (statement ? true_waarde : false_waarde);

etc.

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


Acties:
  • 0 Henk 'm!

  • IMarks
  • Registratie: Juli 2011
  • Laatst online: 19:13
ook hier zelfde verhaal ik ben niet zo bekend met deze code's en begrijp het dus (helaas) niet. het simpele converteren ik mijn aangeleverde code is toch niet zo moeilijk lijkt me

Acties:
  • 0 Henk 'm!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
IMarks schreef op maandag 29 augustus 2011 @ 11:03:
normaal gesprokken zie je op fora ook dat ze jou code converteren, ik heb zelf de code aangeleverd van hoe ik het opgebouwd wil hebben en aangeleverd waar ik niet uit komt ect, ik hoef dus niet alles voorgekauwt te hebben maar een simpele assitentie is niet veel gevraagd lijkt me, deze code zijn voor mij totaal onbekend en voor jullie blijkbaar wel dus het lijk me niet zo moeilijk om even de strpos op de juiste locatie toe te voegen en alle overige suggesties als preg_match bijv.
Wellicht moet je dan een ander forum opzoeken, hier op Tweakers willen we graag de bezoekers leren programmeren, in plaats van alles maar voor te kauwen. Dit zorgt ervoor dat je de volgende keer geen vraag hoeft te stellen, maar er zelf uit kan komen :Y)

Wellicht moet je gewoon een goed boek aanschaffen om de basis eerst te leren.

[ Voor 4% gewijzigd door TJHeuvel op 29-08-2011 11:11 ]

Freelance Unity3D developer


Acties:
  • 0 Henk 'm!

  • IMarks
  • Registratie: Juli 2011
  • Laatst online: 19:13
misschien moet je dan vragen wat mij leermethode is, want ik leer het pas zodra is toegepast in een script ingericht op mijn interface (de code die ik aangeleverd heb). ik hou de code's namelijk overzichtelijk te lezen en toch (naar mijn mening) geavanceerd. alle if en else'jes zijn al ingericht en hoog uit 50 letter tekens moeten er toegevoegt worden. Ik heb nooit iets twee keer uitgelegt hoeven te krijgen op deze manier dus wees daar maar ook niet bang voor.

Acties:
  • 0 Henk 'm!

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 15-09 20:20
Voorkauwen van code doe ik niet.

Ik heb zelf ergens een dergelijk oplossing waarbij ik zo'n verkorte if statement gebruik uit m'n laatste post waarbij ik een extra class aan een element toevoeg om deze eruit te laten springen. (Jquery UI tabs lenen zich hier heel makkelijk voor)

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


Acties:
  • 0 Henk 'm!

  • borft
  • Registratie: Januari 2002
  • Laatst online: 15-09 16:33
wat een brutaliteit. Eigenlijk kan je dus niet programmeren, en je bent te lui om je in te lezen. Als je dan een duw in de goeie richting krijgt is het niet goed genoeg?


Beste kerel, veel mensen die je hier tips geven programmeren voor hun werk in het dagelijks leven en laten zich daar goed voor betalen. Je mag blij zijn dat je met zo'n simpele vraag uberhaupt een antwoord krijg.

Om toch nog even contructief te blijven:


1. match met bv een reguliere expressie subdomein uit het domein (zie bv preg_match)
2. bouw een leuke switch/case waar je per dubdomein iets anders kunt doen

Acties:
  • 0 Henk 'm!

  • IMarks
  • Registratie: Juli 2011
  • Laatst online: 19:13
misschien moet jij normaal gaan doen borft en me tekst goed terug lezen, ik heb aan alle tweaker voorschriften voordaan en nog wordt ik niet geholpen op de manier dat ik het begrijpt. dus hulp mag ik zeker wel verwachten atm ben ik nog niet onbeschoft geweest, dat jij de toonhoogte misschien verkeerd leg is niet mijn fout.

(in dit bericht wordt ik idd wel onbeschooft ja, maar dat moet te begrijpen zijn lijkt me.)

[ Voor 3% gewijzigd door IMarks op 29-08-2011 11:18 ]


Acties:
  • 0 Henk 'm!

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 15-09 20:20
Hebben wij een verplichting om jou in Jip-en-janneke taal PHP uit te leggen?

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


Acties:
  • 0 Henk 'm!

  • borft
  • Registratie: Januari 2002
  • Laatst online: 15-09 16:33
nja, je bent in ieder geval wel volhardend, dat kan ik wel waarderen ;)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$host = $_SERVER['HTTP_HOST'];

// get subdomain
$domains = explode(',', $host);

switch ( $domains[0] ){
  case 'sub1':
    doiets();
    break;

  case 'sub2':
    doeietsanders();
    break;

  default:
    doedefaults();
}

Acties:
  • 0 Henk 'm!

  • IMarks
  • Registratie: Juli 2011
  • Laatst online: 19:13
ik vraag toch geen uitleg, ik vraag de laatste 50 lees tekens toe te voegen in een al aangeleverd code.
mij leraar (die nu in verband met stage niet bereikbaar is en ik het dus hier vraagt) legt het ook maar 1 keer uit en heb zijn code altijd direct kunnen toepassen.

@borft bedankt dat je nu wel wil mee werken, dus codes zijn wel te begrijpen en die zal gaan testen, bedankt.

[ Voor 17% gewijzigd door IMarks op 29-08-2011 11:24 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

IMarks schreef op maandag 29 augustus 2011 @ 11:18:
misschien moet jij normaal gaan doen borft en me tekst goed terug lezen, ik heb aan alle tweaker voorschriften voordaan en nog wordt ik niet geholpen op de manier dat ik het begrijpt.
Je hebt je zeker niet aan onze regels gehouden en dit topic gaat dan ook dicht. We zijn hier geen afhaalbalie voor kant en klare code, zie ook het beleidstopic bovenaan dit forum. Vergeet ook vooral niet dat wij geen enkele verplichting hebben om jou aan het handje te houden als je de gegeven antwoorden niet begrijpt.

Dit topic gaat dicht vanwege een gebrek aan eigen inzet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.