• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Inhalte in Arrays ändern

MarcusMüller

New member
Hallo Leute,
unzwar habe ich mir eine foreach Schleife für die Darstellung von Suchergebnissen im CMS Contao gebastelt die zu einzelnen Artikeln führen. Funktioniert auch alles wunderbar, allerdings würde ich die URLs der Artikellinks gerne ein wenig verändern:

Beispiel für Artikellinks in Contao:
HTML:
http://www.beispiel.de/Rubrik-1/Artikel/Seite.html?articles=Artikelalias

Ich würde jetzt gerne von jedem Link der zu einem Artikel führt diesen Teil entfernen:
HTML:
?articles=Artikelalias
, da ich den Link zur Seite haben will auf dem der Artikel liegt und nicht zum Artikel selbst (hat gewisse Vorteile für mich).

Wie lösche ich nun für die einzelnen Links per PHP den Text nach .html, gibt es für sowas eine Funktion? Wäre euch da seht dankbar!
MfG Marcus

Hier der noch PHP- Text:
PHP:
<ul class="level_1"> 
      <?php $lastkey = count($this->results) -1; ?>    
      <?php foreach($this->results as $k => $item): ?> 
         <li class="<?php echo ((($k % 2) == 0) ? ' even' : ' odd') . (($k == 0) ? ' first' : '') . (($k == $lastkey) ? ' last' : ''); ?>">
         <?php if($item['image']): ?>
              <div class="articleImage"><?php print $item['image']; ?></div>
            <?php endif; ?>
        <div class="articleRight">
          <div class="articleTitle"><a href="<?php print $item['href']; ?>"><?php print $item['title']; ?></a></div>
          <div class="articleDate"><?php print $item['createdate']; ?></div><div class="clear"></div>
          <p class="articleTeaser"><?php print $item['teaser']; ?></p></div>
        </li>
      <?php endforeach; ?>
    </ul>
 
Zuletzt bearbeitet:
Hey Junkee[],
danke erstmal für die Antwort.
Habe das jetzt so versucht:
PHP:
<a href="<?php $parenthref = preg_replace("/ \\?.*$/", "", $item['href']);print $parenthref; ?>">
Aber ist irgendwie immer noch gleich. Das gleiche gilt für:
PHP:
<a href="<?php 
$zeichenkette = $item['href'];
$suchmuster = "/ \\?.*$/";
$ersetzung = "";
print preg_replace($suchmuster, $ersetzung, $zeichenkette); ?>">
Siehe: http://php.net/manual/de/function.preg-replace.php

Hat jemand ne Lösung?
Grüße Marcus
 
Zuletzt bearbeitet:
Habe die Lösung gefunden :) . Das Leerzeichen zwischen / \\ in
PHP:
preg_replace("/ \\?.*$/", "", $str);
muss gelöscht werden. Also einfach:
PHP:
preg_replace("/\\?.*$/", "", $str);
Vielen Dank Junkee[]! ;)
 
Zurück
Oben