$link auslesen

  • Themenstarter Themenstarter DEDEX7200Pro
  • Beginndatum Beginndatum
D

DEDEX7200Pro

Hallo Leute, ich möchte folgendes anwenden:

Ich habe eine Callback Funktion für die Start.php Datei gemacht und habe folgendes vor: Ich möchte einen geschriebenen Link mit der Outpu.php ersetzen und dann verlinken. Dazu habe ich folgendes gemacht:

Output.php
Code:
$_GET['link'];
$_GET['text];
$link = $_GET['link'];
$text = $_GET['text'];
echo "<head><meta http-equiv="refresh" content="5; URL='.$link.'"
<p>$text<br/>Sie werden innerhalb von 5sec. weitergeleitet. Andernfalls klicken sie bitte <a href=\"$link\">hier</a></p>";

Meine Callback-Datei sieht so aus (index.php)
Code:
<?php
function callback($buffer) 
{
  // ersetztungen
  require_once ("replace.php");
  return (preg_replace($find, $replace, $buffer));
}

ob_start("callback");
require_once ("start.php");
ob_end_flush();
?>

Meine Replace.php sieht so aus:
Code:
<?php
function makePattern($f)
{
    return '#\<a href\="((http|https){1}\://)?(www\.)?'.$f.'([^"]*)">.*\</a\>#Uis';
}

$forbidden = array();
$forbidden[0] = 'ebay.de';
$forbidden[1] = 'downloadseite1';
$suchmuster = array_map(makePattern, $forbidden);

$ersetzungen = array();
$ersetzungen[0] = "<a href=\"output.php?text=Sie werden zu einer Seite von ebay weitergeleitet&link=$link\">$link</a>";
$ersetzungen[1] = "<a href=\"output.php?text=Diese Webseite enthält evtl. illegallen Inhalt. Der jeweilige User, der diesen Link gepostet hat, ist dafür zuständig und wir, die Forenbetreiber, sind für den Inhalt der User nicht verantwortbar&link=$link\">$link</a>";
?>

Meine Start.php enthält den Inhalt des Forums und wird auch schon richtig angezeigt. Nur geht das verlinken über die output.php nicht, da ich nicht weiss, wie ich $link auslese. $link soll die URL des geschriebenen Links der User sein; also z.B. http://www.ebay.de/shop-vom-nachbarn-des-users
 
also ich habe derzeit folgenden Code zum auslesen aller Links, aber das bringt mich nicht weiter, da ich ja den entsprechenden Link benötige

Code:
<?php
$buffer = "<a href=\"http://www.ebay.de/test\">*Klick*</a><br/><a href=\"http://www.google.de\">*Klick*</a>";
preg_match_all('/<a href="?([^>]+?)"?>(.+?)<\/a>/i',$buffer,$ausgabe,PREG_PATTERN_ORDER);
$x = 0;
foreach ($ausgabe[1] as $link) {
echo $link."<br/>";
$x++;
}
?>
 
Hallo Leute, wer nach einer ähnlichen Lösung sucht, ich habe dies nun so zusammengefast; werde es dann noch fertig machen, wenn ich Zeit habe^^

Code:
<?php
function callback($buffer) 
{
	function makePattern($f)
{
    return '#\<a href\="((http|https){1}\://)?(www\.)?'.$f.'([^"]*)">.*\</a\>#Uis';
}

$forbidden = array();
$forbidden[0] = 'ebay.de';
$forbidden[1] = 'shopb.de';
$suchmuster = array_map(makePattern, $forbidden);

$ersetzungen = array();
$ersetzungen[0] = "<a class=\"postlink\" href=\"output.php?link=$link\" name=\"postlink\">http://www.ebay.de</a>";
$ersetzungen[1] = 'Keine Werbung für andere Webseiten';

$buffer = preg_replace('/<a href="?([^>]+?)"?>(.+?)<\/a>/', '$', $buffer);
$buffer = preg_replace($suchmuster, $ersetzungen, $buffer);
return $buffer;
}

ob_start("callback");
$text = "<a href=\"http://www.ebay.de\">ebay.de</a>";
echo $text;
ob_end_flush();
?>

Edit: Habs nun überarbeitet, aber es geht net; bitte um hilfe:

Code:
<?php
function callback($buffer) 
{
$suchmusterx = array();
$suchmusterx[0] = '<a href=\"';
$suchmusterx[1] = '(.+?)';
$suchmusterx[2] = '<\/a>';

$ersetzungenx = array();
$ersetzungenx[0] = '$link = \"';
$ersetzungenx[1] = '';
$ersetzungenx[2] = '\";';

str_replace($suchmusterx, $ersetzungenx, $buffer);

	function makePattern($f)
{
    return '#\<a href\="((http|https){1}\://)?(www\.)?'.$f.'([^"]*)">.*\</a\>#Uis';
}
$forbidden = array();
$forbidden[0] = 'ebay.de';
$forbidden[1] = 'shopb.de';
$suchmuster = array_map(makePattern, $forbidden);

$ersetzungen = array();
$ersetzungen[0] = "<a href=\"output.php?link=$link\">http://www.ebay.de</a>";
$ersetzungen[1] = 'Keine Werbung für andere Webseiten';

return (preg_replace($suchmuster, $ersetzungen, $buffer));
}

ob_start("callback");
$text = "<a href=\"http://www.ebay.de\">ebay.de</a>";
echo $text;
ob_end_flush();
?>
 
Zuletzt bearbeitet von einem Moderator:
Zurück