[PHP] URL in stukken hakken met substr

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik tracht een functie te schrijven waarmee ik een deel van een url kan afhakken en de rest kan retourneren. Neem de volgende URL als voorbeeld:
PHP:
1
$url = 'producten/groenten/winter/groen/spruiten/zeeland/middelburg';

Als ik het laatste deel (na "/") eraf wil hebben, gebruik ik
PHP:
1
2
3
$url = substr($path, 0, strrpos($path, '/'));

// retourneert producten/groenten/winter/groen/spruiten/zeeland

Maar wat als ik de laatste 2 delen (spruiten/zeeland) of 3 delen (groenten/spruiten/zeeland) eraf wil hebben, welke code moet ik dan gebruiken?
PHP:
1
2
3
function chop_url($url, $parts) {
  return; // ??
}

Moet ik $url eerst exploden, het aantal delen tellen, dan het aantal karakters per deel en dan het aantal delen x aantal karakters dat moet blijven staan als derde argument van substr geven?

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
split() gebruiken?

Acties:
  • 0 Henk 'm!

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 18-09 22:29
Wat je kunt doen is het helemaal opslitsen met explode, en dan de laatste 2 items van de array opvragen in een string terug zetten en dat returen.

Voor je op gang te helpen
PHP:
1
2
3
4
5
6
7
8
9
function chop_url($url, $parts) { 
  $Deeltjes = explode('/',$url);
  $Return = '';
  for($i = 0; $i < $parts;$i++)
  {
    $Return .= $Deeltjes[$i];
  }
  return $Return
}

[ Voor 44% gewijzigd door Depress op 23-02-2007 14:30 . Reden: Éven wat code ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:29

crisp

Devver

Pixelated

zoiets:
PHP:
1
2
3
4
function chop_url($url, $parts)
{
    return implode('/', array_slice(explode('/', $url), -$parts));
}

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

PHP:
1
2
3
4
5
6
7
8
9
<?php
function chop_url($url, $parts) {
   for($x = 0; $x <= $parts; $x++)
   {
       $url = substr($url, 0, strrpos($url, '/')); 
   }
  return $url;
}
?>

[ Voor 4% gewijzigd door Snake op 23-02-2007 14:29 ]

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 20-09 00:03

hamsteg

Species 5618

PHP:
1
$aDirectories = split('/', $sPathName);

Zie ww.php.net/split

... gecensureerd ...


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Dit is wel een leuke functie voor URL's: http://nl2.php.net/manual/en/function.parse-url.php

Verder kan jij gewoon exploden op de '/'.

PHP:
1
2
$url = 'producten/groenten/winter/groen/spruiten/zeeland/middelburg'; 
$stukjes = explode('/', $url);


Vervolgens is $stukjes een array met alle stukjes van je $url ding.
$stukjes[0] = producten
$stukjes[1] = groenten
...
$stukjes[6] = middelburg

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 15:31

orf

check ook eens dirname();

dirname(dirname('path/naar/bestand')); werkt ook prima.
Pagina: 1