Zum Inhalt springen

Umgekehrte IDN-Konvertierung


Empfohlene Beiträge

Hallo zusammen,

ich hab mir eine Funktion gebaut, mit deren Hilfe ich Nicht-IDN-Konforme Domains umkonvertiere. Nun brauche ich jedoch genau den umgekehrten Weg.

Hier die Funktion

  
<?php
$charset = "ISO-8859-1";

$domain_liste = split("\n",$liste);

foreach($domain_liste as $domain){
$domain = idn_to_ascii($domain, $charset);
echo $domain;
echo "<br>";
}

?>
[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hat mir irgendwie nicht viel geholfen :(

Also, das Problem ist :

Ich lese das HTML-File ein und will nun den zu encodierenden Pattern

zwischen

$Anfang(">http://")

und

$Ende("</a>")

suchen lassen und diesen eben mit

$Pattern = utf8_encode($Pattern); encodieren.

Da es sich jedoch um viele solcher Pattern handelt und auch ständig welche hinzukommen, stehe ich vor einem Prob.

Hinzu kommt, das mein Urlaub davon abhängt ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, ich hab mir da jetzt mal was gebastelt, aber das ist keine optimale Lösung.


<?php
$html = '<A HREF="http://xn--gnstige-aluminiumfelgen-cpc.de/">http://xn--gnstige-aluminiumfelgen-cpc.de/</A></FONT><A HREF="http://www.google.de/">http://www.google.de/</A></FONT>';
preg_match_all("|<A.*?>http://(.*?)</A>|i", $html, $treffer, PREG_PATTERN_ORDER);
print_r($treffer);
?>

[/PHP]

Das Problem ist, ich kann $home nicht "so" einsetzen wie im Beispiel, da ständig Domains hinzukommen, bzw. wegfallen. Bräuchte also ne Art Wildcard die sagt :

Wenn zwischen >http://(.*?)</A> die Zeichenfolge xn-- kommt, dann nimm alles was zischen >http:// und </A> steht, mach was tolles und dann tust du das ganze wieder in den String, damit ich die HTML-Datei wieder komplett angezeigt bekomme.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, hab jetzt soweit alles. Das einzige, winzige Problem ist, das ich mit folgendem Code keines Matches bekomme, sprich : Er nix decodiert.



.......................
while (!feof($fp)) {
$line = fgets($fp);
if (preg_match('/^(<+.*>http:\/\/+)(.*)(\/<\/A.*)/',$line,$matches) ) {

$matches[2] = utf8_encode($matches[2]);
$line = $matches[1].$matches[2].$matches[3];
}
echo "\n\n$line";


}
................................

[/PHP]

_________________

Link zu diesem Kommentar
Auf anderen Seiten teilen

/^(<+.*>http:\/\/+)(.*)(\/<\/A.*)/

Mal ein paar Anmerkungen zum regulären Ausdruck:

^: Steht der Link am Anfang der Zeile?

<+.*> Können auch mehrere Links pro Zeile bestehen? Sonst hast Du nämlich ein Problem, dass diese mit in das <+.*> reinpassen, und nur der letzte genommen wird

<\/A.*) Ist das A in den Files zwingend groß geschrieben?

Ich bin mal so frei, und versuche ein wenig zu optimieren:

/(<[^>]*>http:\/\/)(.*?)(\/<\/a>)/is

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, ich schreib jetzt einfach mal, wie es funktioniert....



..............................
$charset = "ISO-8859-1";
while (!feof($fp)) {
$line = fgets($fp);
if (preg_match('/^(<+.*>http:\/\/+)(.*)(\/<\/A.*)/',$line,$matches) ) {


$matches[2] = idn_to_unicode($matches[2], $charset);
$line = $matches[1].$matches[2].$matches[3];
}
echo "\n\n$line";


}
..............................
[/PHP]

Wichtig : IDN-PHP Modul muss auf dem Server installiert sein!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...