login  Naam:   Wachtwoord: 
Registreer je!
 Forum

automatische link in tekst

Offline markla - 11/03/2010 19:30
Avatar van marklaPHP interesse Voor twee zuster websites zoek ik een script dat automatisch links van de ene naar de andere website kan genereren.

De ene website bevat nieuwsartikelen, interviews etc met daarin (mogelijke) de namen van voetballers. De andere website bevat gedetailleerde informatie over die voetballers.

Nu zou ik graag willen dat als er een artikel plaats wordt waar in de naam van een speler in voorkomt , die naam automatisch een link naar de andere website wordt.

Deze techniek heb ik op ander website gezien, maar Ik weet niet hoe je deze techniek noemt, dus ik weet niet waarop ik moet zoeken.  

Wie kan mij (op weg) helpen

21 antwoorden

Gesponsorde links
Offline valles10 - 11/03/2010 19:34
Avatar van valles10 HTML interesse Ehm, tijdens de echo van het artikel een <a href="">$iets->schrijver</a> zetten?
Offline Jelmerholland - 11/03/2010 19:44
Avatar van Jelmerholland PHP beginner Ik denk dat je het beste een mysql tutorial kan doen.

Daar komen dingen als dit ook aan boden leer je iets meer de structuur kennen hoe je dit moet oplossen.

Wat kan je al wél?
Offline markla - 11/03/2010 19:51
Avatar van markla PHP interesse @valles110
telkens een a href plaatsen lijkt mij zeer bewerkelijk en fout gevoellig even voorbeeld van wat ik bedoel:

http://www.elfv...van-gelder

@Jelmerhollan
Ik denk dat een mysql tutorial hier niet op zijn plaats is

tenzij je een specifieke tutorial weet waar mijn vraag in uitgelegd wordt.
Offline valles10 - 11/03/2010 19:54
Avatar van valles10 HTML interesse
markla schreef:
@valles110
telkens een a href plaatsen lijkt mij zeer bewerkelijk en fout gevoellig even voorbeeld van wat ik bedoel:

http://www.elfv...van-gelder

@Jelmerhollan
Ik denk dat een mysql tutorial hier niet op zijn plaats is

tenzij je een specifieke tutorial weet waar mijn vraag in uitgelegd wordt.

Dat bedoel ik ook niet?
Ik bedoel gewoon de schrijver een link meegeven zoals
geschreven door:
nu staat er gewoon "geschreven door: admin"
dat zou dan worden "geschreven door: <a href= ". ..... "> admin< / a>"
Offline markla - 11/03/2010 20:02 (laatste wijziging 11/03/2010 20:03)
Avatar van markla PHP interesse valles10 ik snap wel wat jij bedoeld, maar het gaat om de naam van de speler die IN de tekst staat. Net als in de link daar staat :
Dudek moet in de Kuip de opvolger worden van Rob van Dijk,
in de code staat dan:
  1. <p><a href="/speler/122885_dudek" class="koppeling">Dudek</a> moet in de Kuip de opvolger worden van <a href="/speler/00940_rob-van-dijk" class="koppeling">Rob van Dijk</a>,


Het lijkt mij dat dit automatisch gebeurd want je wilt een tekst redacteur toch geen a href codes laten toevoegen. da's vragen om moelijkheden  
Offline voltrex - 11/03/2010 20:08 (laatste wijziging 11/03/2010 20:12)
Avatar van voltrex Lid Een mogelijkheid is om voordat je het artikel echoot, je het door een functie laat lopen. Deze ziet er dan bijvoorbeeld zo uit:
  1. function nametolink($text) {
  2. $text= str_replace("Corneel", "<a href=\"/spelers/corneel\">Corneel</a>", $text);
  3.  
  4. return $text;
  5. }
  6.  
  7. /// aanroepen:
  8. $artikel = nametolink($mysqltabel['artikel']);
  9. echo $artikel;


Maar weet niet of dat juist is wat je zoekt.  
Bedankt door: markla
Offline valles10 - 11/03/2010 20:11
Avatar van valles10 HTML interesse
voltrex schreef:
Een mogelijkheid is om voordat je het artikel echoot, je het door een functie laat lopen. Deze ziet er dan bijvoorbeeld zo uit:
[..code..]

Maar weet niet of dat juist is wat je zoekt.  

ja zoiets..
ofwel:
  1. $namen = array("sam" => "<a href="?p=sam">sam</a>", "Corneel" => "<a href="?p=corneel">corneel</a>");//enz.. dit kan even goed samen met mysql...
  2. $bericht = strtr($bericht, $namen);
Bedankt door: markla
Offline markla - 11/03/2010 20:15
Avatar van markla PHP interesse Oke   dit lijkt me een end in de richting die ik graag op wil.

de $namen inderdaad met een query op halen Ja ik ken weer een avondje aan de slag

Thanks

P.s.
als het werkt......of niet I'll be back  
Offline valles10 - 11/03/2010 20:17
Avatar van valles10 HTML interesse
markla schreef:
Oke   dit lijkt me een end in de richting die ik graag op wil.

de $namen inderdaad met een query op halen Ja ik ken weer een avondje aan de slag

Thanks

P.s.
als het werkt......of niet I'll be back  

Veel plezier ermee ;)
Offline Jelmerholland - 11/03/2010 22:40
Avatar van Jelmerholland PHP beginner Dat dacht ik dus al, dat je zoiets bedoelde ;) Daarom een mysql tut. Dan zet je er een gewoon een check in, dat ALS in db, dan is dit de link, als DAT in db, dan is dit de link....etc.


Succes iig
Offline markla - 12/03/2010 12:12
Avatar van markla PHP interesse Heren (en eventuele dames)
Het principe heb ik nu werkend    

NU moet ik alleen nog even bedenken hoe ik de :

$text= str_replace("Corneel", "<a href=\"/spelers/corneel\">Corneel</a>", $text);

Kan vullen met de resultaten uit een query.
Wordt dan dan zoiets?
$text= str_replace
("Corneel", "<a href=\"/spelers/corneel\">Corneel</a>", "Pieterl", "<a href=\"/spelers/pieter\">Pieter</a>", $text);

Ik weet op voorhand al dat ik ± 700 spelers heb.

Offline cloudstrife - 12/03/2010 12:19
Avatar van cloudstrife PHP beginner Omgekeerd denken! Je moet gewoon je resultset doorlopen en per rij die replace gaan doen.
Offline TotempaaltJ - 12/03/2010 16:34 (laatste wijziging 12/03/2010 16:35)
Avatar van TotempaaltJ PHP interesse
  1. $namen = array("sam" => "<a href=\"?p=sam\">sam</a>", "Corneel" => "<a href=\"?p=corneel\">corneel</a>");//enz.. dit kan even goed samen met mysql...
  2. $bericht = strtr($bericht, $namen);

Dit is je antwoord! Je vult de $namen array uit de MySQL database en je bent klaar!

Niet er doorheen for-loopen, met 700 spelers kan dit elke keer wel even duren.
Offline markla - 13/03/2010 22:33
Avatar van markla PHP interesse helaas ik kom er niet uit :-(

ik dacht aan zoiets
  1. <?php
  2. include_once('external/inc_afconnect.php');
  3. $sql = "SELECT
  4. naam,
  5. id
  6. FROM af_players
  7. order by naam";
  8. $result = mysql_query( $sql);
  9.  
  10. while( $row=mysql_fetch_object($result) )
  11. {
  12. $namen =
  13. array (.$record->Player_Achternaam.
  14. =>
  15. "<a href='speler/'.$record->id.'/'.$record->naam.'.htm'>'.$record->naam.'</a>)";
  16. }
  17. echo $namen;
  18. ?>


Maar ik krijg een fout op de afsluitende )

Offline noep - 13/03/2010 22:56 (laatste wijziging 13/03/2010 22:57)
Avatar van noep Nieuw lid $record->Player_Achternaam word nergens ingevult bedoel je niet $row->Player_Achternaam
Offline markla - 13/03/2010 23:05
Avatar van markla PHP interesse Nee toch?!

mysql_fetch_assoc = met $row["userid"]
mysql_fetch_assoc = met $row->id;


Parse error: parse error, expecting `')'' in testnamen.php on line 13

en dit is line 13 array (.$record->Player_Achternaam.
Offline noep - 13/03/2010 23:12 (laatste wijziging 13/03/2010 23:15)
Avatar van noep Nieuw lid je moet de laatste ) om hem af te sluiten wel achter de " doen

Edit na paar minuten:

  1. $namen =
  2. array ($record->Player_Achternaam
  3. =>
  4. "<a href='speler/".$record->id."/".$record->naam.".htm'>".$record->naam."</a>");


het kwam er uit te zien als .link.
Offline TotempaaltJ - 14/03/2010 09:48 (laatste wijziging 14/03/2010 09:49)
Avatar van TotempaaltJ PHP interesse
  1. <?php
  2. while( $row=mysql_fetch_object($result) ) //$row is nu waar de uitkomsten in zitten
  3. { // dus gebruik $row
  4. $namen =
  5. Array($row->Player_Achternaam // puntjes zijn zinloos?
  6. =>
  7. '<a href="speler/' . $row->id . '/' . $row->naam . '.htm">' . $row->naam.'</a>'); // " en ) verkeerd om. Ook kan je niet ' en " met elkaar combineren.
  8. }
  9. echo $namen;
  10. ?>

Nu krijg je helaas alleen de laatste speler. Zie php.net:
  1. $arr["x"] = 42; // This adds a new element to
  2. // the array with key "x"

Dus, achter je $result = mysql... moet je een regel maken waarin je de array $namen definieert (lege array), en dan moet je bovenstaande syntax gebruiken om er elke speler aan toe te voegen.
Offline markla - 14/03/2010 10:16 (laatste wijziging 14/03/2010 10:17)
Avatar van markla PHP interesse Als ik het volgende doe krijg ik als echo alleen het woord ARRAY

  1. <?php
  2. while( $row=mysql_fetch_object($result) ) //$row is nu waar de uitkomsten in zitten
  3. { // dus gebruik $row
  4. $namen =
  5. Array($row->Player_Achternaam // puntjes zijn zinloos?
  6. =>
  7. '<a href="speler/' . $row->id . '/' . $row->naam . '.htm">' . $row->naam.'</a>'); // " en ) verkeerd om. Ook kan je niet ' en " met elkaar combineren.
  8. }
  9. echo $namen;
  10. ?>
Offline nick5556 - 14/03/2010 10:32 (laatste wijziging 14/03/2010 10:32)
Avatar van nick5556 PHP beginner PHP.net: print_r gebruik je voor array's
Offline TotempaaltJ - 14/03/2010 11:32
Avatar van TotempaaltJ PHP interesse Heb je het laatste stuk van mijn post gelezen? Dat was het belangrijkste...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.283s