2017-03-13 5 views
0

Ich bin ziemlich neu zu Regex, und ich habe ein bisschen ein Problem. Ich möchte den Inhalt in der URL zwischen / und ? oder / und /.Inhalt in URL mit PHP

Beispiel:

www.domain.com/about?page/readmore/party

Die Werte, die ich will:

about page readmore party

Wie kann ich das erreichen? Versucht es mit preg_split zu tun, konnte es aber nicht erreichen.

+0

'$ url = str_replace ('/', $ '?' url) 'dann' explode ('/', $ url) 'dann' array_shift', um den Domain-Teil –

+0

natürlich zu entfernen! Dass ich nicht darüber nachgedacht habe. Können Sie das in einer Antwort beantworten? Ich werde Ihnen eine positive Bewertung geben;) – Saypontigohe

+0

Siehe meine Antwort unten, bitte –

Antwort

0
$urlStr = "www.domain.com/about?page/readmore/party";<br> 
$newStr = str_replace("?","/",$urlStr);<br> 
$newRep = explode("/",$newStr);<br> 
$newArr = [];<br> 
for($i = 0; $i < count($newRep); $i++){<br> 
    if($i == 0){<br> 
<br> 
    }else{<br> 
    array_push($newArr,$newRep[$i]);<br> 
    }<br> 
}<br> 
print_r($newArr);<br> 
+0

verwendet. Während dieser Code die Frage beantworten kann, verbessert das Bereitstellen zusätzlichen Kontexts, warum und/oder wie dieser Code die Frage beantwortet, seinen langfristigen Wert. Eine *** gute Antwort *** wird immer eine Erklärung haben, was getan wurde und warum es so gemacht wurde, nicht nur für das OP, sondern auch für zukünftige Besucher von SO. –

+0

Eigentlich entschuldige ich mich dafür, weil ich Neuling bin, also werde ich mich an Ihren Vorschlag erinnern, wenn ich weitere Fragen beantworte und danke für Ihren Vorschlag. –

+1

Sie können Ihre Antwort hier bearbeiten, um die relevanten Informationen zu enthalten. –

2

Die ideea ist, dass Sie die ? Zeichen mit dem / ersetzen zu erhalten www.domain.com/about/page/readmore/party dann durch die / aufgeteilt und erhalten [www.domain.com, about, page, readmore, party]; dann extrahieren Sie einfach alle, aber den ersten Teil mit array_slice:

$url = 'www.domain.com/about?page/readmore/party'; 

    $parts = array_slice(explode ('/', str_replace ('?', '/', $url)), 1); 

    var_dump($parts); 

es gibt:

array(4) { 
    [0]=> 
    string(5) "about" 
    [1]=> 
    string(4) "page" 
    [2]=> 
    string(8) "readmore" 
    [3]=> 
    string(5) "party" 
} 

live sehen here

+0

Wie wäre es mit http://php.net/manual/en/function.parse-url.php? –

+0

Nicht ganz was OP braucht –

+0

Das macht genau das, was ich brauchte. Ich wollte den Inhalt zwischen '?' Und '/' und das tut genau das. Danke Constantin :) – Saypontigohe