php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 13-05-2007, 20:01
fhsd
 Newbie
Links : Onlinestatus : fhsd ist offline
Registriert seit: May 2007
Beiträge: 5
fhsd ist zur Zeit noch ein unbeschriebenes Blatt
Standard hilfe

beim stöbern auf der unten verlinkten seite bin ich über ein php snippet gestossen das ich für meine zwecke sehr gut gebrauchen kann.
es handelt sich um folgendes code stück

http://simplecontent.net/phpsnippets/5/link_words.html

auf der seite funktioniert die demo sehr gut, aber sobald ich den code auf meiner xampp
installation unter windows xp ausfüre bekomme ich folgendes resultat.


das sehe ich im firefox browser:

quelltextansicht:
------------------------------
Aus einem kann man herstellen.
Z.B. Essstäbchen, , Schrankwände oder Fensterrahmen.
Möchte man aber damit tun kann man
aber auch eine daraus bauen.
oder , da fällt die Entscheidung doch leicht, oder?
Immer noch besser als .
<img src="/gfx/gitarre.jpg" alt="Gitarre" title="Gitarre aus einem Urwaldbaum, um ein Haar wäre aus dem Holz Klopapier geworden.">
-------------------------------

wie ihr sehen könnt sollte das script die phrasen die im array definiert sind mit der angegebenen url verlinken.
beim ausführen des scripts "fehlen" diese links/phrasen im text. woran kann das liegen.

script getestet auf:
windows xp xammp
debian linux, apache, php4




es wäre sehr nett von euch wenn sich jemand ein paar minuten zeit für mein problem nehmen würden.

naturlich habe ich vor diesem post zuerst den webmaster dieser seite um hilfe gebeten, leider nach einer woche keine antwort ..


und hier der php code

PHP-Code:
<?php


function cmp($a,$b)
{
    
$bool strlen($a) < strlen($b);
    return 
$bool;
}


function 
gimmeTheLink($k, &$map)
{
    
$r '';
    if (isset(
$map[$k])){
        
$r $map[$k];
        unset(
$map[$k]);
    }else{
        
$r $k;
    }
    return 
$r;
}

$text = <<< EOT

Aus einem Urwaldbaum kann man viel unnützes Zeug herstellen.
Z.B. Essstäbchen, Klopapier, Schrankwände oder Fensterrahmen.
Möchte man aber etwas wirklich sinnvolles damit tun kann man 
aber auch eine Gitarre daraus bauen.
Gitarre oder Urwaldbaum, da fällt die Entscheidung doch leicht, oder?
Immer noch besser als Klopapier.
<img src="/gfx/gitarre.jpg" alt="Gitarre" title="Gitarre aus einem Urwaldbaum, 
um ein Haar wäre aus dem Holz Klopapier geworden.">
EOT;

$targets = array(
'Urwaldbaum' => 'http://de.wikipedia.org/wiki/Urwald',
'Klopapier' => 'http://www.umwelt.org/robin-wood/german/trowa/urwaldpapier/index.htm',
'Gitarre' => 'http://de.wikipedia.org/wiki/Gitarre',
'viel' => 'http://www.pril.de',
'Zeug' => 'http://www.zeug.de',
'viel unnützes Zeug' => 'http://www.ebay.de',
'etwas wirklich sinnvolles' => 'http://www.internetabschalten.de',

);

$map = array();

foreach (
$targets as $k => $v){
    
$key2use preg_quote($k);
    
$map[$key2use] = sprintf('<a href="%s">%s</a>'$v$k);
}


 
uksort($map'cmp');

$tmp '(\b'.join ('\b|\b'array_keys($map)).'\b)';

$regexp "/".$tmp."(?![^<]+>)/e";


$new preg_replace($regexp,'gimmeTheLink("", $map)',$text);

echo 
$new;

?>

p.s
Welche überbreite, auf meinem 22" display sieht alles wunderbar aus ;-)

mit freundliche grüssen


-fhsd-

Geändert von fhsd (28-05-2007 um 12:41 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 13-05-2007, 21:30
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

http://www.php-resource.de/forum/sho...threadid=50454

Bitte ERST lesen und befolgen. Wenn Überbreite weg ist und keine Fehler mehr auftauchen bitte das Problem erneut beschreiben.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 14-05-2007, 00:23
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Begriffe und Phrasen in einem Text verlinken

Zitat:
Original geschrieben von fhsd
PHP-Code:
$new preg_replace($regexp,'gimmeTheLink("", $map)',$text); 
warum wendest du dich nicht an den autor, wenn du dich schon blind auf irgendwas verlässt, was du vielleicht nicht verstehst?

der autor hat offensichtlich einen fehler gemacht, indem er den ersten parameter für gimmeTheLink() nicht gesetzt hat. dieser soll wohl eine referenz darauf sein, was der reguläre ausdruck gefunden hat. im manual findest du, wie man diese wieder einbaut.
Mit Zitat antworten
  #4 (permalink)  
Alt 14-05-2007, 07:03
fhsd
 Newbie
Links : Onlinestatus : fhsd ist offline
Registriert seit: May 2007
Beiträge: 5
fhsd ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: Begriffe und Phrasen in einem Text verlinken

Zitat:
Original geschrieben von penizillin
warum wendest du dich nicht an den autor, wenn du dich schon blind auf irgendwas verlässt, was du vielleicht nicht verstehst?

Zitat:
Original geschrieben von fhsd
naturlich habe ich vor diesem post zuerst den webmaster dieser seite um hilfe gebeten, leider nach einer woche keine antwort ..
der webmaster ist der autor ...


nun, wie soll ich sagen. meine php kentnisse sind momentan nicht sehr hoch darum bitte ich das forum mir bei diesem script zu helfen. du hast mir schon einen hinweis gegeben wo der fehler liegt, ich werde versuchen den bug selbst zu beheben, aber ich bezweifle das ich das ohne hilfe von euch schaffe ...

mfg
Mit Zitat antworten
  #5 (permalink)  
Alt 14-05-2007, 20:41
fhsd
 Newbie
Links : Onlinestatus : fhsd ist offline
Registriert seit: May 2007
Beiträge: 5
fhsd ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hallo,

kann mir jemand etwas genauer beschreiben wo das problem ist.

ich komme nicht weiter
Mit Zitat antworten
  #6 (permalink)  
Alt 14-05-2007, 20:47
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wo befindet sich der aufruf der funktion gimmeTheLink? welches parameter wird ihr als erstes übergeben?
Mit Zitat antworten
  #7 (permalink)  
Alt 14-05-2007, 20:56
fhsd
 Newbie
Links : Onlinestatus : fhsd ist offline
Registriert seit: May 2007
Beiträge: 5
fhsd ist zur Zeit noch ein unbeschriebenes Blatt
Standard

habe das so abgeändert

PHP-Code:

function gimmeTheLink($k, &$map)
{
    
$r '$targets';
    if (isset(
$map[$k])){
        
$r $map[$k];
        unset(
$map[$k]);
    }else{
        
$r $k;
    }
    return 
$r;

nun werden die phrasen zwar im text angezeigt aber nicht verlinkt.
wie man sieht bin ich kein php genie
Mit Zitat antworten
  #8 (permalink)  
Alt 15-05-2007, 10:32
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hättest du etwas dagegen, meine frage zu beantworten? oder lieber wild rumraten?
Mit Zitat antworten
  #9 (permalink)  
Alt 15-05-2007, 20:55
fhsd
 Newbie
Links : Onlinestatus : fhsd ist offline
Registriert seit: May 2007
Beiträge: 5
fhsd ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hallo,

fühl dich bitte nicht beleidigt, die situation sieht so aus.
für meine private internetseite ist die funktion dieses scripts sehr von interresse. das script macht die texte zum glossar ...

da ich noch nicht sehr viel mit php gearbeitet habe begab ich mich auf die suche nach einem "fertigem" script das meine bedürfnisse einigermassen entspricht.
habe auch eins gefunden aber leider funktioniert es nicht ...

da ich noch kein php spreche erhoffte ich mir das sich jemand in diesem forum ein paar minuten zeit nimmt um sich den code aniseht und ihn korrigiert.

Zitat:

... im manual findest du, wie man diese wieder einbaut.
diese mentalität ist mir aus der linux/unix welt bekannt hier wurde man(n) als newbie genauso behandelt, sprich man wurde gezwungen sich das wissen anzuarbeiten.
und jetzt nach ein paar jahren ist die shell mein freund geworden...

mir fehlt es noch an wissen um das script zu debuggen, und ich kann php nicht in 24 stunden lernen um das selbst in die hand zu nehmen.

falls mir jemand helfen möchte, der soll einfach posten. danke

mfg fhsd
Mit Zitat antworten
  #10 (permalink)  
Alt 15-05-2007, 21:19
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
<?php
$text 
= <<< EOT

Aus einem Urwaldbaum kann man viel unnützes Zeug herstellen.
Z.B. Essstäbchen, Klopapier, Schrankwände oder Fensterrahmen.
Möchte man aber etwas wirklich sinnvolles damit tun kann man 
aber auch eine Gitarre daraus bauen.
Gitarre oder Urwaldbaum, da fällt die Entscheidung doch leicht, oder?
Immer noch besser als Klopapier.
<img src="/gfx/gitarre.jpg" alt="Gitarre" title="Gitarre aus einem Urwaldbaum, 
um ein Haar wäre aus dem Holz Klopapier geworden.">
EOT;

$targets = array(
'Urwaldbaum' => 'http://de.wikipedia.org/wiki/Urwald',
'Klopapier' => 'http://www.umwelt.org/robin-wood/german/trowa/urwaldpapier/index.htm',
'Gitarre' => 'http://de.wikipedia.org/wiki/Gitarre',
'viel' => 'http://www.pril.de',
'Zeug' => 'http://www.zeug.de',
'viel unnützes Zeug' => 'http://www.ebay.de',
'etwas wirklich sinnvolles' => 'http://www.internetabschalten.de',

);

$links = array();

foreach (
$targets as $k => $v){
    
$links[$k] = sprintf('<a href="%s">%s</a>'$v$k);
}

$new str_replace(array_keys($links), $links$text);

echo 
$new;
?>
Versuch mal das. Mit der Gitarre haut das logischerweise nicht hin, weil der alt-Tag im image ersetzt wird.
__________________
ich glaube
Mit Zitat antworten
  #11 (permalink)  
Alt 30-10-2007, 17:28
BigFish
 Newbie
Links : Onlinestatus : BigFish ist offline
Registriert seit: Oct 2007
Beiträge: 1
BigFish ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ahoi,

hier schreibt der Urheber des Skriptbeispieles.
Nur für den Fall das hier noch jemand mitliest.
Ich habe den Fehler jetzt beseitigt.
Es lag daran, dass die Zeichenfolge "Backslash 1" für die back reference bei der Ausgabe verloren ging.
Bei der Ausführung des Skriptes war es noch ok, deshalb hat es auf meiner Seite funktioniert.

Die vorletzte Zeile muss also

$new = preg_replace($regexp,'gimmeTheLink("\1", $map)',$text);

lauten und nicht

$new = preg_replace($regexp,'gimmeTheLink("", $map)',$text);


Hier die URL zu der korrigierten Version:

http://simplecontent.net/phpsnippets/5/link_words.html


Viele Grüße

Stefan
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:28 Uhr.