Quoted from ""KMD""
ich möchte eine übergebene Variable aus einer Url auslesen. Der Haken dabei: Bei der Variable handelt es sich um eine Url.
Z.B.: http://www.meinedomain.mein/view.php?url=http://www.anderedomain.mein/test.php?action=1&print=0
mit
$url = $_GET['url'];
lese ich die Variable aus, aber es geht nur bis action=1. Den Rest (&print=0) lässt er weg!
|
|
HTML Code |
1 |
|
|
|
PHP Quellcode |
1 |
$strUrl = urldecode($_GET['url']); |
Quoted from ""KMD""
Noch ne Frage: für was steht das = vor urlencode? Das ist mir bisher noch nie über den Weg gelaufen![]()

Quoted from ""KMD""
Danke, ich werde es gleich mal ausprobieren!
Noch ne Frage: für was steht das = vor urlencode? Das ist mir bisher noch nie über den Weg gelaufen![]()
|
|
PHP Quellcode |
1 |
$texteinleitung = preg_replace("/((http(s?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", "<a href=\"".$viewpfad.urlencode("http$3://$4$5")."\" target=\"_blank\">$2$4$5</a>", $texteinleitung); |
|
|
PHP Quellcode |
1 |
$texteinleitung = preg_replace("/((http(s?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", "<a href=\"".$viewpfad.urlencode("http".$3."://".$4.$5."")."\" target=\"_blank\">$2$4$5</a>", $texteinleitung); |
Quoted from ""KMD""
Hmm... ich dachte das kann nicht so ein Problem sein das einzubinden. Da habe ich mich allerding geirrt. Der Link wird per preg_replace erzeugt und ich bekomme es einfach nicht gebacken! :?
wenn ich es so mache
![]()
PHP Quellcode
1 $texteinleitung = preg_replace("/((http(s?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", "<a href=\"".$viewpfad.urlencode("http$3://$4$5")."\" target=\"_blank\">$2$4$5</a>", $texteinleitung);
werden $3,$4 und $5 nicht ausgegeben. Und wenn ich es so machebekomme ich eine PHP-Fehlermeldung.
![]()
PHP Quellcode
1 $texteinleitung = preg_replace("/((http(s?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", "<a href=\"".$viewpfad.urlencode("http".$3."://".$4.$5."")."\" target=\"_blank\">$2$4$5</a>", $texteinleitung);
Könnt Ihr mir bitte helfen? Ich bin noch nicht so fitt in php!
|
|
PHP Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$messagehtml .= ""; // Links in die Statistik-TXT-Datenbank schreiben preg_match_all("/((http(s?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", $texteinleitung, $arrMatches, PREG_PATTERN_ORDER); if(is_array($arrMatches)) { foreach($arrMatches[0] as $url) { $datei = fopen($databases_dir."statistiken.txt", "a+"); flock($datei,2); fputs($datei, "".$url.";;0;;\n"); flock($datei,3); fclose($datei); } } // Erzeugung eines Links mit <a href...>-Tag $texteinleitung = preg_replace("/((http(s?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", "<a href=\"".$viewpfad."http$3://$4$5\" target=\"_blank\">$2$4$5</a>", $texteinleitung); // Erzeugung eines E-Mail-Links mit <a href="mailto:...>-Tag $texteinleitung = preg_replace("/([\w\_\-\.]+)(@)([\w\_\-\.]+)/i", "<a href=\"mailto:$0\">$0</a>", $texteinleitung); $messagehtml .= $texteinleitung; echo $messagehtml; |
Quoted from ""KMD""
Ich verzweifle gleich :cry:
mit preg_match_all habe ich es immerhin hinbekommen das die Urls in eine TXT-Datenbank geschrieben werden (wie im anderen Beitrag schon besprochen). Aber wie ich replace dabei anwenden kann verstehe ich nicht. Des weiteren kommt dazu, dass in $texteinleitung mehrere Links vorkommen können, und das verwirrt mich noch mehr.
Gruß KMD
|
|
PHP Quellcode |
1 2 3 4 5 6 7 |
$texteinleitung ='https://www.ctserver.org, http://ctbot.de, www.jquery.de'; preg_match_all("/(((https?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", $texteinleitung, $arrMatches, PREG_SET_ORDER); foreach($arrMatches as $arrMatch) { $strUrl = urlencode($arrMatch[0]); $strSearch = str_replace(array('.', '/'), array('\.', '\/'), $arrMatch[0]); $texteinleitung = preg_replace('/' . $strSearch . '/i', '<a href="' . $viewpfad . $strUrl . '" target="_blank">' . $arrMatch[0] . '</a>', $texteinleitung); } |
Quoted from ""KMD""
@BendIt
Hier ein Link zu einer Abgespeckten Version der Funktion. Vieleicht erklährt es sich leichter wenn Du siehst was dabei rauskommen soll.
http://www.kmd-test.de/newsletter-datenbank-test/test/test2.php
|
|
PHP Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$viewpfad = 'http://www.kmd-test.de/newsletter-datenbank-test/test/newsletter_view.php?url='; $texteinleitung ='Hier steht der vom User eingegeben Einleitungs-Text... In diesem Text können mehrere Links eingebunden werden. Z.B: Link1: http://www.kmd-hosting.de/packages.php?pack=big&action=1 Link2: http://www.kmd-web.de und Link 3: http://www.kmd-hosting.de/packages.php?pack=big&action=3 . Es können aber auch Email-Adressen eingebunden werden. Z.B. info@meine-domain.mein . Des Weiteren hat der User die Möglichkeit Mehrere Textblöcke, zB. für Produktbeschreibungen, zu erzeugen. Die Anzahl der Textblöcke ist nicht begrenzt und wird mit einem DOM-Konstrukt erzeugt. Anschliessend wird alles zusammen gefasst und in ein Newsletter-Template eingebunden. Beim Aufruf der Links soll zudem ein Counter die Klicks mit zählen.'; preg_match_all("/(((https?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", $texteinleitung, $arrMatches, PREG_SET_ORDER); foreach($arrMatches as $arrMatch) { $strUrl = urlencode($arrMatch[0]); $strSearch = str_replace(array('.', '/'), array('\.', '\/'), $arrMatch[0]); $texteinleitung = preg_replace('/' . $strSearch . '/i', '<a href="' . $viewpfad . $strUrl . '" target="_blank">' . $arrMatch[0] . '</a>', $texteinleitung); } preg_match_all("/([\w\_\-\.]+)(@)([\w\_\-\.]+)/i", $texteinleitung, $arrMatches, PREG_SET_ORDER); foreach($arrMatches as $arrMatch) { $strSearch = str_replace(array('.', '/'), array('\.', '\/'), $arrMatch[0]); $texteinleitung = preg_replace('/' . $strSearch . '/i', '<a href=\"mailto:$0\">$0</a>' . $arrMatch[0] . '</a>', $texteinleitung); } |
|
|
PHP Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
// Erzeugung von Links mit <a href...>-Tags preg_match_all("/(((https?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", $texteinleitung, $arrMatchesLinks, PREG_SET_ORDER); if(is_array($arrMatchesLinks)) { foreach($arrMatchesLinks as $arrMatchLink) { $strEnd = substr($arrMatchesLinks[0], -1); if(!ereg("^[A-Za-z0-9]+$", $strEnd)) { $arrMatchesLinks[0] = substr($arrMatchesLinks[0], 0, -1); } // URL Codieren (Wird in der view.php wieder Decodiert) $strUrl = urlencode($arrMatchLink[0]); $strSearch = str_replace(array('.', '/', '?'), array('\.', '\/', '\?'), $arrMatchLink[0]); // Erzeugung von Links mit <a href...>-Tags $texteinleitung = preg_replace('/' . $strSearch . '/i', '<a href="' . $viewpfad . $strUrl . '" target="_blank">' . $arrMatchLink[0] . '</a>', $texteinleitung); } } // Erzeugung von E-Mail-Links mit <a href="mailto:...>-Tags preg_match_all("/([\w\_\-\.]+)(@)([\w\_\-\.]+)/i", $texteinleitung, $arrMatchesEmails, PREG_SET_ORDER); if(is_array($arrMatchesEmails)) { foreach($arrMatchesEmails as $arrMatchEmail) { $strEnd = substr($arrMatchEmail[0], -1); if(!ereg("^[A-Za-z0-9]+$", $strEnd)) { $arrMatchEmail[0] = substr($arrMatchEmail[0], 0, -1); } $strSearch = str_replace(array('.', '/'), array('\.', '\/'), $arrMatchEmail[0]); $texteinleitung = preg_replace('/' . $strSearch . '/i', '<a href="mailto:' . $arrMatchEmail[0] . '">' . $arrMatchEmail[0] . '</a>', $texteinleitung); } } |
|
|
PHP Quellcode |
1 |
$texteinleitung = preg_replace('/' . $strSearch . '/i', '<a href="' . $viewpfad . $strUrl . '" target="_blank">' . $arrMatchLink[0] . '</a>', $texteinleitung, 1); |
|
|
PHP Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
preg_match_all("/(((https?):\/\/)|(www\.))([\w\_\-\/\.\?\=\&\~]+)/i", $texteinleitung, $arrMatchesLinks, PREG_SET_ORDER); if(is_array($arrMatchesLinks)) { foreach($arrMatchesLinks as $arrMatchLink) { $arrSearched = array(); $strEnd = substr($arrMatchesLinks[0], -1); if(!ereg("^[A-Za-z0-9]+$", $strEnd)) { $arrMatchesLinks[0] = substr($arrMatchesLinks[0], 0, -1); } // URL Codieren (Wird in der view.php wieder Decodiert) $strUrl = urlencode($arrMatchLink[0]); $strSearch = str_replace(array('.', '/', '?'), array('\.', '\/', '\?'), $arrMatchLink[0]); // Erzeugung von Links mit <a href...>-Tags if(!in_array($strUrl, $arrSearched)) { $texteinleitung = preg_replace('/' . $strSearch . '/i', '<a href="' . $viewpfad . $strUrl . '" target="_blank">' . $arrMatchLink[0] . '</a>', $texteinleitung); $arrSearched[] = $strUrl; } } } // Erzeugung von E-Mail-Links mit <a href="mailto:...>-Tags preg_match_all("/([\w\_\-\.]+)(@)([\w\_\-\.]+)/i", $texteinleitung, $arrMatchesEmails, PREG_SET_ORDER); if(is_array($arrMatchesEmails)) { foreach($arrMatchesEmails as $arrMatchEmail) { $arrSearched = array(); $strEnd = substr($arrMatchEmail[0], -1); if(!ereg("^[A-Za-z0-9]+$", $strEnd)) { $arrMatchEmail[0] = substr($arrMatchEmail[0], 0, -1); } $strSearch = str_replace(array('.', '/'), array('\.', '\/'), $arrMatchEmail[0]); if(!in_array($arrMatchEmail[0], $arrSearched)) { $texteinleitung = preg_replace('/' . $strSearch . '/i', '<a href="mailto:' . $arrMatchEmail[0] . '">' . $arrMatchEmail[0] . '</a>', $texteinleitung); $arrSearched[] = $arrMatchEmail[0]; } } } |
|
|
PHP Quellcode |
1 |
$texteinleitung="http://www.meinetestdomain.de , hier nochmal der Link mit html http://www.meinetestdomain.de/meinedatei.html |
|
|
HTML Code |
1 2 3 |
<a href="http://www.kmd-test.de/newsletter-datenbank-test/test/newsletter_view.php?url=http%3A%2F%2Fwww.meinetestdomain.de" target="_blank">http://www.meinetestdomain.de</a> , hier nochmal der Link mit html <a href="http://www.kmd-test.de/newsletter-datenbank-test/test/newsletter_view.php?url=http%3A%2F%2Fwww.meinetestdomain.de" target="_blank">http://www.meinetestdomain.de</a>/meinedatei.html |
|
|
HTML Code |
1 2 3 |
<a href="http://www.kmd-test.de/newsletter-datenbank-test/test/newsletter_view.php?url=http%3A%2F%2Fwww.meinetestdomain.de" target="_blank">http://www.meinetestdomain.de</a> , hier nochmal der Link mit html <a href="http://www.kmd-test.de/newsletter-datenbank-test/test/newsletter_view.php?url=http%3A%2F%2Fwww.meinetestdomain.de" target="_blank">http://www.meinetestdomain.de/meinedatei.html</a> |