ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
381
381
EMPFEHLEN
-
Moin Leute,
ich code grade an einem Script das ein CMS (PHP-Fusion) suchmaschinenoptimiert. Es enthält:
- Titel im Link
- Variabale Titel, Descriptions und Keywords
Hier kann man sich das schonmal anschauen:
http://seo.game-land.eu/
aber nun zur Sache:
ich möchte im Script automatisch die Links ersetzen und dann mit Mod-Rewrite umleiten. Funktioniert bis jetzt auch ganz gut, das problem ist nur das man alle Links bisher im Script manuell umschreiben, was ein sehr starker aufwand ist und manche User die diesen Mod vielleicht einbauen wollen können das nicht.
Deswegen könnte ich das Script gut gebrauchen....
Das Problem ist nur, das man aus diesem Link:
http://seo.game-land.eu/articles.php?cat_id=1
den hier machen muss:
http://seo.game-land.eu/artikel_kategorie/1/test
was ja auch gut funktioniert wenn man es manuell macht...
Also das hier müsste:
zu diesem umgeschrieben werden:PHP-Code:<a href='".FUSION_SELF."?cat_id=".$data['article_cat_id']."'>".$data['article_cat_name']."</a>
Ist glaub ich eigentlich nicht so schwer ausser das jetzt die Variable Name mit drinne ist. ich hab das schon mit allen Varianten des replace probiert aber es klappt nich.PHP-Code:<a href='artikel_kategorie/".$data['article_cat_id']."/".$data['article_cat_name']."'>".$data['article_cat_name']."</a>
Das soll so sein das mann einfach eine Datei oder so in diese Seite includen muss und der Link wird dann automatisch umgewandelt....
Ich hoffe von euch hat jemand die Lösung
mfg freakz
-
07.05.08 17:03 #2
- Registriert seit
- Jul 2003
- Beiträge
- 2
versuch es mal mit mod_rewrite
-
mfg
--------------------------------------------------------------------------------
Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!
Besucht den tutorials.de-Chat | Anleitung
RTFM - PHP-Handbuch - MySql Handbuch
--------------------------------------------------------------------------------
Surftipp...Der Postillon
--------------------------------------------------------------------------------
Signatur v2.2
-
07.05.08 17:07 #4
Was mit spontan einfällt:
Mit Ausgabepufferung alles abfangen, reguläre Ausdrücke und die alten Links ersetzen.
Nicht wirklich performant, würde ich sagen, wird aber öfters so gemacht, wenn man Dinge kombiniert, die nicht von Haus aus zusammenpassen
KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
also ich habe schonmal sowas hier probiert:
aber da kommt komischerweise nur sowas bei raus....PHP-Code:FUSION_SELF."?cat_id=".$data['article_cat_id'] =
BASEDIR."artikel/".$data['article_cat_id']."/".$data['article_cat_name'];
articles.php?cat_id=artikel/1/artikelname
ist ja eigentlich auch schon ganz gut nur das"articles.php?cat_id=" sollte nicht da sein...
-
Du brauchst auf jeden Fall eine Routing-Tabelle, in der beide Formen (interne und externe Schreibweise) notiert sind. Damit kannst du dann in beide Richtungen umformen.
Folgendes wäre beispielsweise möglich:Das Format der Routing-Tabelle wäre in diesem Fall aber noch stark verbesserungswürdig.PHP-Code:function foo( $path, $args=array() )
{
global $routes;
$found = false;
foreach( $routes as $route ) {
if( $route[1][0] == $path ) {
$found = true;
break;
}
}
if( !$found ) {
return false;
}
$retVal = $route[0][0];
if( !preg_match_all('/<([a-zA-Z0-9-_]+)>/', $retVal, $matches) ) {
return false;
}
foreach( $matches[1] as $match ) {
$retVal = str_replace('<'.$match.'>', isset($args[$match]) ? rawurlencode($args[$match]) : '', $retVal);
}
return $retVal;
}
function bar( $path )
{
global $routes;
$found = false;
foreach( $routes as $route ) {
if( $route[0][0]{0} != '<' && strpos($path, preg_replace('/<.*/', '', $route[0][0])) === 0 ) {
if( !preg_match_all('/<([a-zA-Z-_][a-zA-Z0-9-_]*)>/', $route[0][0], $matches) ) {
continue;
}
$retVal = $route[0][0];
foreach( $matches[1] as $match ) {
if( !isset($route[0][1][$match]) ) {
break;
}
$retVal = str_replace('<'.$match.'>', '(?P<'.$match.'>'.$route[0][1][$match].')', $retVal);
}
if( preg_match('<^'.$retVal.'$>', $path, $match) ) {
$found = true;
break;
}
}
}
if( $found ) {
$retVal = array($route[1][0]);
foreach( $match as $key => $val ) {
if( is_numeric($key) || !in_array($key, $route[1][1]) ) {
continue;
}
$retVal[1][$key] = $val;
}
}
return $retVal;
}
$routes = array(
array(
array(
BASEDIR.'artikel_kategorie/<cat_id>/<cat_name>',
array(
'cat_id' => '[1-9][0-9]*',
'cat_name' => '[^/]+',
),
),
array(
FUSION_SELF,
array('cat_id'),
),
),
);
$args = array(
'cat_id' => 123,
'cat_name' => 'foobar',
);
// Generieren eines passenden URL-Pfads
$path = foo(FUSION_SELF, $args);
echo '<a href="'.htmlspecialchars($path).'">'.htmlspecialchars($args['cat_name']).'</a>';
// Parsen des angefragten URL-Pfads
var_dump(bar($path));
Markus Wulftange
-
oh danke das funktioniert sogar..jedoch ist der alte Link auch noch und es gibt ein paar sachen die nicht definiert sind anscheinend...hier kann man sich das mal anschauen:
http://www.game-land.eu/articles.php
jedoch suche ich nach einer etwas leichteren Lösung...vllt mit ob-start...? das hatte ich schon mal fertig jedoch wird dort nicht der name berücksichtigt...
jedoch schaffe ich es nicht den preg_replace so zu verändern das er auch noch die Variable mit reinnimmt...PHP-Code:function seofusion($buf) {
$buf = preg_replace('#viewpage\.php\?page_id=([0-9]*?)(\'|")#si',
'seite_\1.html\2', $buf);
return $buf;
}
ob_start("seofusion");
-
kann mir niemand helfen?
Ähnliche Themen
-
Platzhalter durch PHP-Code ersetzen
Von Aragon83 im Forum PHPAntworten: 9Letzter Beitrag: 24.09.09, 20:10 -
PHP Include durch AJAX Code ersetzen?
Von Carrear im Forum Javascript & AjaxAntworten: 25Letzter Beitrag: 06.09.09, 19:00 -
Wie kann ich in mehreren Datein den gleichen Code durch einen anderen ersetzen?
Von del_nielo im Forum Coders TalkAntworten: 8Letzter Beitrag: 03.02.06, 21:10 -
String durch Code ersetzen
Von tomi im Forum PHPAntworten: 2Letzter Beitrag: 01.06.04, 15:53 -
Variable durch PHP Code bei der Ausgabe ersetzen
Von THE REAL TOOLKIT im Forum PHPAntworten: 1Letzter Beitrag: 19.12.02, 15:55





Zitieren


Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen