Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
http ausfiltern (text) - krieg den pattern nich hin ... [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
http ausfiltern (text) - krieg den pattern nich hin ...


 
dani_o
23-10-2006, 21:38 
 
habe folgende text-datei:


Der Hund schläft htt p://google.dein der Maschine - immernoch ...

da will ich nun das ganze in html umwandeln und de url-adresse anklickbar machen. hatte erst die idee:


<?PHP
//
// Text, der durchsucht werden soll
//
$subject = 'Der Hund schläft htt p://google.de in der Maschine - immernoch ...';
//
// Der Reguläre Ausdruck
//
$pattern = '#htt p://(.*).de#is';
//
// Ersatzstring
//
$replace = '*\1*';
//
// RegExp auswerten, Ersetzung durchführen
//
$result = preg_replace($pattern, $replace, $subject);
//
// Ergebnis ausgeben
//
echo '<p>Ergebnis: '.htmlspecialchars($result).'</p>';
?>


bekomm ich aber nich was ich will sondern Der Hund schläft *google.de in*r Maschine - immernoch ...

egal ma wegen dem text - wie bekomme ich das hin, dass ich nur de url in die * setzen kann? Das leerzeichen in dem htt p ist wegen dem posten hier - müsst ihr mal wegdenken ...

thx4help

 
penizillin
23-10-2006, 21:45 
 
ungreedy modifier ausprobiert?

 
dani_o
23-10-2006, 21:45 
 
ähm wie meinen? ;)

 
penizillin
23-10-2006, 21:48 
 
http://regexp-evaluator.de/tutorial/modifier/

 
dani_o
23-10-2006, 21:53 
 
Original geschrieben von penizillin
http://regexp-evaluator.de/tutorial/modifier/

ha :D was denkst du wo ich rumhüpp :D genau auf dieser seite - aber ich versteh trotzdem nicht, wie ich das pattern so mach, dass der nach dem link das freizeichen erkennt und die nächste stelle sucht ... :(

 
penizillin
23-10-2006, 21:56 
 
du sollst den modifier einbauen - habe ich doch gesagt.

 
dani_o
23-10-2006, 22:00 
 
Original geschrieben von penizillin
du sollst den modifier einbauen - habe ich doch gesagt.

OAH und wie und wo und was?
ich hab da nich soviel ahnung von !

 
penizillin
23-10-2006, 22:01 
 
gegenfrage - welche modifier verwendest du momentan in deinem pattern?

 
TobiaZ
23-10-2006, 22:04 
 
Er hat GANZ KLAR gesagt:

ungreedy modifier einbauen.

wie - curser positionieren, entsprechende tasta (buchstaben) tippen
wo - na, an die stelle wo die modifier hin gehören. da gibt es nicht viele (eine!)
was - na, den entsprechenden buchstaben

 
dani_o
23-10-2006, 22:06 
 
Original geschrieben von penizillin
gegenfrage - welche modifier verwendest du momentan in deinem pattern?
öhm siehst du oben den code? :D

 
dani_o
23-10-2006, 22:07 
 
Original geschrieben von TobiaZ
Er hat GANZ KLAR gesagt:

ungreedy modifier einbauen.

wie - curser positionieren, entsprechende tasta (buchstaben) tippen
wo - na, an die stelle wo die modifier hin gehören. da gibt es nicht viele (eine!)
was - na, den entsprechenden buchstaben

ohja hab genau alles kapiert *grübel* - ne doch ne :D

 
onemorenerd
23-10-2006, 22:07 
 
Vorsicht, ungreedy kanns auch in die Hose gehen. Das Beispiel da oben ist sicher nur eine Möglichkeit von vielen, die dir begegnen, sonst hättest du nicht zu regulären Ausdrücken gegriffen. Und dank deiner (entfernten) Leerzeichen ist das Beispiel leider nicht das beste.
Mir fiel sofort das hier ein:

http://google.deinen.nachbarn

greedy: http://google.dein.museum (also alles)
ungreedy: http://google.de (also u.U. zu wenig)

Das ist sicher auch nicht das beste Beispiel, aber ich hoffe du hast den Punkt erkannt.

 
penizillin
23-10-2006, 22:08 
 
du hast doch eine richtig gute seite entdeckt - warum nicht mal durchs tutorial lesen - dann weißt du auch, was du machst, zumindest was die syntax angeht.

onemorenerd hat natürlich recht - in der form ist der ausdruck nicht so flexibel, wie man ihn z.b. in einem forum gern hätte.

 
TobiaZ
23-10-2006, 22:10 
 
Original geschrieben von onemorenerd
Das ist sicher auch nicht das beste Beispiel, aber ich hoffe du hast den Punkt erkannt. Nö, nicht wirklich. ;)

[ ] sollte er deiner meinung nach "nachbarn" komplett finden?
[ ] oder sollte er das gar nicht unterstreichen? aber woran machst du das fest?

 
dani_o
23-10-2006, 22:12 
 
nebenbei bemerkt - ich arbeite mich grade durch das tut - nur wenn ich nich versteh wie ich das rausfilter - sry - in dem tut is das mit [ url]...[/ url] erklärt - das hab ich ja nicht!

 
penizillin
23-10-2006, 22:14 
 
http://tut.php-q.net/regex.html#u11

 
onemorenerd
23-10-2006, 22:22 
 
@Tobiaz: Hab nachbarn in museum geändert, was ja eine erlaubte TLD ist. Hätte auch noch ein .de an nachbarn anhängen können ... wie auch immer, der obige Ausdruck ist extrem ungenau und ein Ausdruck für exaktes Matchen wäre extrem kompliziert.
Die meisten Ausdrücke die ich kenne, verlangen Leerzeichen rund um die URL (maximal noch ein Satzzeichen am Ende, aber das ist schon selten) und das hat seinen Grund.

 
jahlives
24-10-2006, 07:48 
 
Darf denn eine URL ein Leerzeichen enthalten ? Wohl nicht ohne URLEncode. Also warum denn nicht

$reg = '/http:\\\/\\\/[^\\\s]*/';

Gruss

tobi


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:54 Uhr.