Schrift
[thread]310[/thread]

URI::FIND auch Rückwärts???



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Tom
 2004-06-28 23:47
#2973 #2973
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

Ich benutze URI::FiND um URLs aus einem Formular gleich zu verlinken was auch sehr gut funktioniert, nur gibt es bei mir auch die Möglichkeit die Daten zu bearbeiten, jetzt besteht aber das Problem, dass die URL dann ein zweites mal verlinkt wird und so das ganze dann nicht mehr passt.

Ist es möglich dass beim editieren die URL wieder zurückgewandelt wird, so wie ich sie beim eintragen eingegeben habe???

Oder kann ich das irgendwie anders lösen???

Danke

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
jan
 2004-06-29 00:25
#2974 #2974
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
du könntest die umwandlung erst beim ausgeben machen. oder sie in irgendeine form wie <a href="..." target="_blank">...</a> bringen, die du dann ersetzt. oder du kannst einfach alle <a>-tags parsen und durch den href-wert ersetzen lassen...
Strat
 2004-06-29 02:12
#2975 #2975
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
CPAN:HTML::LinkExtor koennte dir helfen, die Links zu extrahieren, und sie dann durch den ursprungslink (ohne a href) zu ersetzen. Und dann wieder mit URI::Find (vielleicht mal URI::Find::Delimited oder so anschauen, vielleicht sind die dafuer besser geeignet)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Tom
 2004-06-29 20:35
#2976 #2976
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Danke, werde ich mal versuchen.

Melde mich dann wieder.

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
Tom
 2004-07-05 20:55
#2977 #2977
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

Habe das jetzt mal mit HTML::LinkExtor probiert, aber ich erhalte immer keine Ausgabe, kann mir jemand mal ein kleines Beispiel posten???

Danke

Tom\n\n

<!--EDIT|Tom|1089046627-->
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
Strat
 2004-07-06 01:17
#2978 #2978
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
aus dem Perl-Kochbuch:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use HTML::LinkExtor;

$parser = HTML::LinkExtor->new(undef, $base_url);
$parser->parse_file($filename);
@links = $parser->links;
foreach $linkarray (@links) {
my @element = @$linkarray;
my $elt_type = shift @element; # element type

# possibly test whether this is an element we're interested in
while (@element) {
# extract the next attribute and its value
my ($attr_name, $attr_value) = splice(@element, 0, 2);
# ... do something with them ...
}
}
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Tom
 2004-07-06 21:45
#2979 #2979
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Sorry, aber ich glaube ich bin zu blöd dafür.

Code: (dl )
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
#!/usr/bin/perl -w


use CGI::Carp "fatalsToBrowser";
use HTML::LinkExtor;

$filename = "index.html";

$parser = HTML::LinkExtor->new(undef, $base_url);
$parser->parse_file($filename);
@links = $parser->links;
foreach $linkarray (@links) {
my @element = @$linkarray;
my $elt_type = shift @element; # element type

# possibly test whether this is an element we're interested in
while (@element) {
# extract the next attribute and its value
my ($attr_name, $attr_value) = splice(@element, 0, 2);
# ... do something with them ...
}
}
print "Content-Type: text/html\n\n";
print $attr_name;
print $attr_value;


Damit erhalte ich immer nur eine weiße Seite, ich dachte dass ich damit die extrahierten Links sehen.

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
Tom
 2004-07-10 16:46
#2980 #2980
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Kann mir keiner helfen???

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
Dubu
 2004-07-10 17:19
#2981 #2981
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Was ich so auf Anhieb sehe:
1.) $attr_name und $attr_value bekommen in der Schleife immer neue Werte zugewiesen, du gibst sie aber erst nach der Schleife aus. Da steht also nur der letzte Match drin. An der Stelle "... do something with them ..." machst du dagegen gar nichts.
2.) Du schreibst "Content-Type: text/html", was du danach ausgibst, ist aber kein HTML, sondern nur mal text/plain.
Strat
 2004-07-10 21:49
#2982 #2982
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Tom,06.07.2004, 19:45]Sorry, aber ich glaube ich bin zu blöd dafür.


Damit erhalte ich immer nur eine weiße Seite, ich dachte dass ich damit die extrahierten Links sehen.

Tom[/quote]
da musst du mit $attr_name und $attr_value in der schleife arbeiten, damit du an die Werte kommst. Ich habe mal den code so angepasst, dass (hoffentlich) was ausgegeben wird (ich habe den code nicht laufen lassen)
Code: (dl )
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
#! /usr/bin/perl
use strict;
use warnings;

use CGI;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use HTML::LinkExtor;

my $url = "http://www.perl-community.de/index.shtml";

# neues cgi-objekt erstellen
my $cgi = CGI->new();

print $cgi->header(); # gibt http-header aus
print $cgi->start_html(); # gibt <html>... aus

# webseite laden und parsen
my $parser = HTML::LinkExtor->new(undef, $url);
$parser->parse_file($filename);

my @links = $parser->links;
foreach $linkarray (@links) {
my ($eltType, @element) = @$linkarray;

# possibly test whether this is an element we're interested in
while (@element) {
# extract the next attribute and its value
my ($attr_name, $attr_value) = splice(@element, 0, 2);

# mach was mit $attr_name und $attr_value, z.b.
print "$eltType: $attr_name => $attr_value <br>\n";

} # while
} # foreach

# </body></html> ausgeben
print $cgi->end_html();
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2004-06-28 23:47.