fout in automatisch van http:// link maak script

Status
Niet open voor verdere reacties.

Barry_127

Gebruiker
Lid geworden
20 jan 2003
Berichten
478
hoi,

ik wil met een scriptje uit een variabelen alle 'woorden' die met http:// beginnen vervangen door de link naar die link.

ik heb nu dit scriptje:
PHP:
<?php
function lnk($var)
{
	$var = "<a href=\"" . $var . "\" target=\"_blank\">" . $var . "</a>";
	return $var;
}
$mssg = "hoi kijk eens op http://www.google.nl :d";
$mssg = preg_match('_http:\\/\\/(.*?)\/ _ise',"lnk('\\\\1 ')",$mssg);
echo $mssg;
?>

maar ik krijg als resultaat 0 terug...

wat is er fout?
 
Laatst bewerkt:
Op die manier wordt de functie lnk nooit aangeroepen.

Dennis.

ps. Maar er is iemand, die je haarfijn kunt vertellen hoe het wel moet.
 
Geplaatst door Barry_127
laat me raden....
de redder in nood bij de php sectie: Jpeetje
Justement!!, Barry_127.
Be patient, he will show up soon. ;)
He is the PHP guru.

Dennis.

ps. of ben ik te complimenteus?
 
nee hoor ere wie ere toe komt.:thumb:
 
Geplaatst door puppie
nee hoor ere wie ere toe komt.:thumb:

ja drie ****aatjes voor JP

****a!
****a!
****a! :D



maar weer ff ontopic -> Weet iemand al een oplossing :)

//edit soms is die filter ontzettend irritant
 
Stelletje spammers :p
Maar bedankt :D
Die 0 krijg je omdat je de functie preg_match() gebruikt. 0 is FALSE, er wordt dus niets gematched :)
Btw DENNIS90, de functie lnk() wordt op die manier wél aangeroepen ;)
 
Geplaatst door JPeetje
Stelletje spammers :p
Maar bedankt :D
Die 0 krijg je omdat je de functie preg_match() gebruikt. 0 is FALSE, er wordt dus niets gematched :)
Btw DENNIS90, de functie lnk() wordt op die manier wél aangeroepen ;)

maar er zit tog wel resultaat in wat er staat http://www.google.nl

en alles wat er na http:// totde eerst volgende spatie komt word een link volgens dat scriptje

of ik hb iets fout gedaan wat mij lijkt :p

wil je evenkijken wat er fout is JP (A)
 
9e keer vanavond: Check de PHP handleiding :rolleyes:
int preg_match ( string pattern, string subject [, array matches [, int flags]])
Pattern, subject.
Jij checkt of "http://..." voorkomt in de string "lnk('\\1')", wat dus duidelijk niet zo is ;)
Jij wil denk ik preg_replace() gebruiken :)
 
Geplaatst door JPeetje
9e keer vanavond: Check de PHP handleiding :rolleyes:
Pattern, subject.
Jij checkt of "http://..." voorkomt in de string "lnk('\\1')", wat dus duidelijk niet zo is ;)
Jij wil denk ik preg_replace() gebruiken :)

ik verklaar mezelfdan nu tot dom:p

over de handleiding... ik kende de functie wel alleen maakte een domme fout om te typen match ipv replace, ik gebruik deze nl ook voor ubb opmaak codes (Bold enzo)

maar ik krijg hem metreplace nog steeds niet gelinkt wat is er dan nog fout?
 
Laatst bewerkt:
Geplaatst door JPeetje
Stelletje spammers :p
Maar bedankt :D
Sorry, even offtopic:
Not at all, I meant it!
(Vertaald: Nee hoor, ik meen het)
Geplaatst door JPeetje

Btw DENNIS90, de functie lnk() wordt op die manier wél aangeroepen ;)
Sorry JPeetje, net even in de war met de programmeertaal Pascal.

(Pascal: Als lnk binnen de functie zit, dan hebben we met een recursie te maken, maar anders een aanroep)

Weer ontopic.

Dennis.
 
Laatst bewerkt:
Geplaatst door Barry_127
ik verklaar mezelfdan nu tot dom:p
Ik hou me in ... :p:D
maar ik krijg hem metreplace nog steeds niet gelinkt wat is er dan nog fout?
Probeer dit es:
PHP:
<?php
function lnk($var)
{
return(" <a href=\"http://" . $var . "\" target=\"_blank\">http://" . $var . "</a> ");
}

$bericht = "hoi kijk eens op http://www.google.nl :d";
$bericht = @preg_replace("/[ ]http:\\/\\/(.+)[ ]/Usie","lnk('\\\\1')",$bericht);

echo $bericht;
?>
Succes :thumb:

// Edit: Grmbl, Helpmij regexp's ...
Ok, hij's goed nu :)
 
Laatst bewerkt:
bedankt :)

ik heb zelf hetzefde principe met www.ingebouwd maar ik krijg nu (weer) geen resultaat :(

code:
PHP:
<?php
function lnk($var)
{
	return(" <a href=\"http://" . $var . "\" target=\"_blank\">http://[" . $var . "</a> ");
}
function lnkw($var)
{
	return(" <a href=\"http://www." . $var . "\" target=\"_blank\">www." . $var . "</a> ");
}
$bericht = "hoi kijk eens op www.google.nl :d";
$bericht = @preg_replace("/[ ]http:\/\/(.+)[ ]/Usie","lnk('\\\\1')",$bericht);
$bericht = @preg_replace("/[ ]www.(.+)[ ]/Usie","lnkw('\\\\1)",$bericht);

echo $bericht;
?>
 
*dacht dat dit lastig ging worden*
Je mist een ' :p
PHP:
<?
function lnkw($var)
{
return(" <a href=\"http://www." . $var . "\" target=\"_blank\">www." . $var . "</a> ");
}

$bericht = "hoi kijk eens op www.google.nl :d";
$bericht = @preg_replace("/[ ]http:\\/\\/(.+)[ ]/Usie","lnk('\\\\1')",$bericht);
$bericht = @preg_replace("/[ ]www.(.+)[ ]/Usie","lnkw('\\\\1')",$bericht); // ('\\\\1) veranderd in ('\\\\1')

echo $bericht;
?>
Succes :thumb:
 
ik probeerde hem in mijn echte script te zetten en hij werkt niet (http trouwens prima)

dit is wat ik nu heb:

functie:
PHP:
 function wwwlnk($var)
{
	return(" <a href=\"http://www" . $var . "\" target=\"_blank\" class=\"lnk\">www" . $var . "</a> ");
}

preg_replace:
PHP:
$mssg = @preg_replace("/[ ]www(.+)[ ]/Usie","wwwlnk('\\\\1')",$mssg);

zals je ziet heb ik hier ook de punt achter www weggelaten omdat er ook domeinen als www3.blaat.blaat bestaan

edit: de test sectie van mijn script is te zien op www.barrydekleijn.nl/jdorp

dus wat is er dan fout?
 
Laatst bewerkt:
Dat ligt dan aan jou, hier werkt de code perfect :)
PHP:
<?
  function lnk($var)
  {
  return(" <a href=\"http://" . $var . "\" target=\"_blank\">http://" . $var . "</a> ");
  }

  function lnkw($var)
  {
  return(" <a href=\"http://www" . $var . "\" target=\"_blank\">www" . $var . "</a> ");
  }

$bericht = "hoi kijk eens op www.google.nl :d";
$bericht = preg_replace("/[ ]http:\\/\\/(.+)[ ]/Usie","lnk('\\\\1')",$bericht);
$bericht = preg_replace("/[ ]www(.+)[ ]/Usie","lnkw('\\\\1')",$bericht);

echo $bericht;
?>
 
Laatst bewerkt:
kan het liggen aan het feit dat ik die http er al in heb staan?

andsers zet ik dit er wel in:

PHP:
$mssg = str_replace(" www"," http://www",$mssg);
 
Laatst bewerkt:
ik ben achter het probleem alleen weet er nog geen oplossingvoor:

in een bericht heb ik 2 links staan maar hij vervangtde eerste alleen maar
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan