Avatar billede sj.netomia Nybegynder
18. april 2007 - 12:36 Der er 19 kommentarer og
1 løsning

preg_replace skal tilrettes.

Hej Ekspeter.

Jeg har en preg_replace som jeg har fundet her på exp.dk kan i hjælpe mig med at tilrette den til mit formål. ?

Det som jeg gerne vil er at den laver

<A href="http://www.exp.dk">http://www.exp.dk</A>
om til <A href="http://www.exp.dk">http://www.exp.dk target="_blank"</A>

mit preg_replace ser således ud.

$indhold = preg_replace("/((ht|f)tp:\/\/)[\w.-]+(?(?=\/)[^\s<>]+)/i", "<a href=\"\\0\" target=_blank>\\0</a>", $indhold);

Det som den udskriver når jeg kører den er flg.

<A href="<a href="http://www.qxl.dk" target=_blank>http://www.qxl.dk</a>"><a href="http://www.qxl.dk" target=_blank>http://www.qxl.dk</a>

Kan det laves om på en smart måde ?
Avatar billede sj.netomia Nybegynder
18. april 2007 - 13:36 #1
sætter flere point på højkant
Avatar billede sj.netomia Nybegynder
18. april 2007 - 14:30 #2
slet ikke nogen som kan hjælpe ?
Avatar billede sj.netomia Nybegynder
18. april 2007 - 14:31 #3
der skulle selvfølgelig stå Hej Eksperter.
Avatar billede johan.o Nybegynder
18. april 2007 - 14:49 #4
Er absolut ikke sikker, men er det, det her, du leder efter ?

$indhold = preg_replace("/<a href=\"(.+)?\">(.+)?<\/a>/i", "<a href=\"$1\" target=_blank>$2</a>", $indhold);

Mvh. Johan
Avatar billede sj.netomia Nybegynder
18. april 2007 - 22:01 #5
den åbner desværre ikke i nyt vindue. men tak for svaret alligevel.
Avatar billede johan.o Nybegynder
18. april 2007 - 22:30 #6
Najh..men nu var det jo heller ikke det du spurgte om :)

Men det er muligvis fordi der ikke er " omkring _blank.....

$indhold = preg_replace("/<a href=\"(.+)?\">(.+)?<\/a>/i", "<a href=\"$1\" target=\"_blank\">$2</a>", $indhold);

...måske...

Mvh. Johan
Avatar billede sj.netomia Nybegynder
19. april 2007 - 10:23 #7
den udskriver desværre stadig sådan her.

<A href="http://www.exp.dk">http://www.exp.dk</A>

det skal være med et target=_"blank"

det er også det jeg spørger om. :-)
Avatar billede johan.o Nybegynder
19. april 2007 - 13:20 #8
Nå for den :) oups...så må du nok vise noget mere kode fordi det her..

<?php

$indhold='<A href="http://www.exp.dk">http://www.exp.dk</A>';

$indhold = preg_replace("/<a href=\"(.+)?\">(.+)?<\/a>/i", "<a href=\"$1\" target=\"_blank\">$2</a>", $indhold);

echo $indhold;

?>

..giver det her..

<a href="http://www.exp.dk" target="_blank">http://www.exp.dk</a>

..så vidt jeg kan se..

Mvh. Johan
Avatar billede sj.netomia Nybegynder
19. april 2007 - 13:34 #9
ja det har du ret i, men det virker stadig ikke her.

mit html som jeg prøver at preg_replace ser således ud.

<P align=center><STRONG><FONT face=Arial size=6>overskriftm</FONT></STRONG></P>
<P align=center><STRONG><FONT face=Arial size=6></FONT></STRONG>&nbsp;</P>
<P align=center><A href="http://www.exp.dk">http://www.exp.dk</A></P>

jeg bruger CreateLink funktionen som er indbygget i IE til at lave links, men skal altså have lavet dem om til at åbne i nyt vindue.

jeg har også i din preg_replace prøvet at ændre til <A>    </A> men det virker heller ikke.
Avatar billede sj.netomia Nybegynder
19. april 2007 - 13:35 #10
altså det som du skrev virker her, men i mit tilfælde virker det ikke.
Avatar billede johan.o Nybegynder
19. april 2007 - 13:39 #11
Hmm...det her..

<?php

$indhold='
<P align=center><STRONG><FONT face=Arial size=6>overskriftm</FONT></STRONG></P>
<P align=center><STRONG><FONT face=Arial size=6></FONT></STRONG>&nbsp;</P>
<P align=center><A href="http://www.exp.dk">http://www.exp.dk</A></P>
';

$indhold = preg_replace("/<a href=\"(.+)?\">(.+)?<\/a>/i", "<a href=\"$1\" target=\"_blank\">$2</a>", $indhold);

echo $indhold;

?>

..det giver da det her..

<P align=center><STRONG><FONT face=Arial size=6>overskriftm</FONT></STRONG></P>
<P align=center><STRONG><FONT face=Arial size=6></FONT></STRONG>&nbsp;</P>
<P align=center><a href="http://www.exp.dk" target="_blank">http://www.exp.dk</a></P>

..?..

Mvh. Johan
Avatar billede sj.netomia Nybegynder
19. april 2007 - 13:50 #12
det kan jeg kun give dig ret i, bare mystisk at det ikke virker i mit script.

jeg bruger denne funktion til at indsætte links med.
onclick="document.execCommand('createlink','false','url'); som jeg så submitter til et php script hvor jeg kører de preg_replace som du lavede og $indhold = stripslashes($indhold);

men html som den udskriver er den samme som den jeg sendte til dig.
Håber at du har en løsning på problemet. for jeg er helt blank når det virker på den anden måde.
Avatar billede johan.o Nybegynder
19. april 2007 - 14:09 #13
Har du prøvet at checke hvad du 'modtager' i dit php script ?

Mvh. Johan
Avatar billede sj.netomia Nybegynder
19. april 2007 - 14:36 #14
hvordan skal jeg gøre det, jeg printer jo bare $indhold ud og indsætter det i database bagefter.
Avatar billede johan.o Nybegynder
19. april 2007 - 14:41 #15
Tja, det er svært at sige :), du bliver nok nød til at vise noget mere kode. Både der hvor du 'danner' linket, og php-scriptet hvor du behandler linket.

Mvh. Johan
Avatar billede sj.netomia Nybegynder
19. april 2007 - 14:51 #16
her er nyhed.php der hvor jeg laver wysiwyg til nyhedsbrevet.

<?
require ('db_info.php');
$query        ="SELECT indhold FROM nyhedsbrev_indhold where kat='$kat'";
$result        = mysql_db_query ($database, $query);
while($row = mysql_fetch_array($result)){
?>
<html>
<body onLoad="document.all.wysiwyg.focus();">
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<script>

    function doFont(fName)
  {
    if(fName != '')
      document.execCommand('fontname', false, fName);
  }
  function doSize(fSize)
  {
    if(fSize != '')
      document.execCommand('fontsize', false, fSize);
  }
 
function (InsertImage)
{
theImg = document.all.imagepath.value;
if (theImg != "")
document.execCommand("InsertImage", true, theImg);
}
</script>
<table cellpadding="0" cellspacing="0" border="0">
   
        <div>
        <form NAME="forside" ACTION="test.php" METHOD="POST" OnSubmit="return valider();">
        <script>

          function valider()
            {
                document.forside.indhold.value=wysiwyg.innerHTML;

                if (document.forside.indhold.value=="")
                {
                    wysiwyg.focus();
                    alert("Du skal indtaste noget indhold!");
                    return (false);
                }

                return(true);
            }

                function newWin(str1, str2, str3){
                win = window.open(str1, str2, str3)
                if(win.opener == null){
                win.opener = self;
                }
                }

                function vis() {
                win = window.open("", "forside", "width=660,height=800,left=300,top=50,toolbars=no,scrollbars=yes,status=yes,resizable=yes");
                win.document.write("<html><head><title>Vis nyhedsbrevet</title></head><head><body bgcolor=\"#c0c0c0\"><center><head></head><img src=\"http://www.blop.dk/test/html/email_top.jpg\" BORDER=\"2\" BORDERCOLOR=\"BLACK\" WIDTH=\"620\"></center><br><TABLE BORDER=\"1\" BORDERCOLOR=\"BLACK\" BGCOLOR=\"#cccccc\" CELLSPACING=\"0\" CELLPADDING=\"10\" WIDTH=\"623\" HEIGHT=\"570\" ALIGN=\"CENTER\"><TR><TD VALIGN=\"TOP\">" + document.all.wysiwyg.innerHTML + "</body></TR></TABLE><TABLE WIDTH=\"620\" ALIGN=\"CENTER\" CELLPADDING=\"2\"><TR><TD><br><font size=\"2\" color=\"#777777\">Galleri Brænderigården Horsens - Søndergade 41 E - 8700 Horsens. Telefon 7625 1445 - Fax 7625 1448 <a href=\"mailto:info@gb-h.dk\"><font color=\"#777777\">info@gb-h.dk</font></a></TD></TR></TABLE></html>");
                }
                //vis = Replace(vis, "href=", "target=""_blank"" href=");

        </script>
                <table WIDTH="100%" CELLSPACING="0" CELLPADDING="0" BORDER="0" ALIGN="CENTER"><tr>
                <td>
                </td>
                <td ALIGN="LEFT">
                    <table style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BACKGROUND: D6D3CE; MARGIN-BOTTOM: 3pt; OVERFLOW: hidden; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; HEIGHT: 28px" cellSpacing="2" cellPadding="1" bgColor="#D6D3CE" border="0"><tr>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('copy');" unselectable="On"><img alt="Kopier" src="images/copy.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('cut');" unselectable="On"><img alt="Klip" src="images/cut.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('paste');" unselectable="On"><img alt="Indsæt" src="images/paste.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('justifyleft', false, null);" unselectable="On"><img alt="Venstre stil" src="images/left.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('justifycenter', false, null);" unselectable="On"><img alt="Centere" src="images/center.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('justifyright', false, null);" unselectable="On"><img alt="Højre stil" src="images/right.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand(&quot;Bold&quot;);" unselectable="On"><img alt="Fed" src="images/bold.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand(&quot;Italic&quot;);" unselectable="On"><img alt="Kursiv" src="images/italic.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand(&quot;Underline&quot;);" unselectable="On"><img alt="Understreg" src="images/underline.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand(&quot;InsertUnorderedList&quot;);" unselectable="On"><img alt="Liste" src="images/purebullet.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('createlink','true','true');" unselectable="On"><img alt="Link" src="images/link.gif" WIDTH="21" HEIGHT="20"></button></td>
                        <td vAlign="center"><td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="java script:newWin('tilmeldte.php?info=vis','','width=500, height=600,scrollBars=1,resizable=0')"><img alt="Vis brugere" src="images/view.gif" WIDTH="21" HEIGHT="20" border="0"></button></td>
                        <td vAlign="center"><td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="java script:newWin('upload.php','','width=700, height=500,scrollBars=1')"><img alt="Upload Billeder" src="images/upload.gif" WIDTH="21" HEIGHT="20" border="0"></button></td>
                        <td vAlign="center"><td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="vis(); return false;"><img alt="Vis nyhedsbrevet i et nyt vindue" src="images/show.gif" WIDTH="21" HEIGHT="20" border="0"></button></td>

                        </td></td>
                  </tr></table>
                  <table style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BACKGROUND: D6D3CE; MARGIN-BOTTOM: 3pt; OVERFLOW: hidden; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; HEIGHT: 28px" cellSpacing="2" cellPadding="0" bgColor="#D6D3CE" border="0"><tr>
                  <tr>
                  <?
                        print ("<td><a href=\"$PHP_SELF?kat=alle\"><font size=\"2\">Alle</a>&nbsp;&nbsp;</td>");
                        print ("<td><a href=\"$PHP_SELF?kat=privat\"><font size=\"2\">Privat</a>&nbsp;&nbsp;</td>");
                        print ("<td><a href=\"$PHP_SELF?kat=virksomhed\"><font size=\"2\">Virksomhed</a>&nbsp;&nbsp;</td>");
                        print ("<td><a href=\"$PHP_SELF?kat=maleri\"><font size=\"2\">Maleri</a>&nbsp;&nbsp;</td>");
                        print ("<td><a href=\"$PHP_SELF?kat=grafik\"><font size=\"2\">Grafik</a>&nbsp;&nbsp;</td>");
                        print ("<td><a href=\"$PHP_SELF?kat=skulptur\"><font size=\"2\">Skulptur</a>&nbsp;&nbsp;</td>");
                        print ("<td><a href=\"$PHP_SELF?kat=museum\"><font size=\"2\">Museum</a>&nbsp;&nbsp;</td>");
                        print ("<td><a href=\"$PHP_SELF?kat=kunstforening\"><font size=\"2\">Kunstforening</a></tr>");
                        ?></tr></table><table><tr><td><font size="2">Du har valgt: <?print ("<STRONG>$kat");?></STRONG></td></tr></table>
                       
                  <p><div id="wysiwyg" contentEditable="true" class="adminWYSIWYG" align="left">
                    <P><?print ("$row[indhold]");?>
                </div></p>

                <input TYPE="HIDDEN" NAME="indhold" VALUE>

          <select name="selFont" onChange="doFont(this.options[this.selectedIndex].value)">
            <option value="">-- Skrift type --</option>
            <option value="Arial">Arial</option>
            <option value="Courier">Courier</option>
            <option value="Sans Serif">Sans Serif</option>
            <option value="Tahoma">Tahoma</option>
            <option value="Verdana">Verdana</option>
            <option value="Wingdings">Wingdings</option>
          </select>
          <select name="selSize" onChange="doSize(this.options[this.selectedIndex].value)">
            <option value="">-- Skrift størrelse --</option>
            <option value="1">Meget lille</option>
            <option value="2">Lille</option>
            <option value="3">Mellem</option>
            <option value="4">Stor</option>
            <option value="5">Større</option>
            <option value="6">Meget Stor</option>
          </select>
            <br><br><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="2">Send kun til mig:<input type="checkbox" name="test_send" value="1" checked="1">
            <FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1"><br><b>Fjern denne for at sende til alle på listen.</b></FONT><br><br>
            <b>Send til:</b> Private:<input type="checkbox" name="send_til" value="privat"<?if ($kat == "privat") {print ("checked");}?>>
            &nbsp;&nbsp;&nbsp;Firmaer:<input type="checkbox" name="send_til" value="virksomhed"<?if ($kat == "virksomhed") {print ("checked");}?>>
            &nbsp;&nbsp;&nbsp;Maleri:<input type="checkbox" name="send_til" value="maleri" <?if ($kat == "maleri") {print ("checked");}?>>
            &nbsp;&nbsp;&nbsp;Grafik:<input type="checkbox" name="send_til" value="grafik" <?if ($kat == "grafik") {print ("checked");}?>>
            &nbsp;&nbsp;&nbsp;Skulptur:<input type="checkbox" name="send_til" value="skulptur" <?if ($kat == "skulptur") {print ("checked");}?>>
            &nbsp;&nbsp;&nbsp;Museum:<input type="checkbox" name="send_til" value="museum" <?if ($kat == "museum") {print ("checked");}?>>
            &nbsp;&nbsp;&nbsp;Kunstforening:<input type="checkbox" name="send_til" value="kunstforening"<?if ($kat == "kunstforening") {print ("checked");}?>>
            <input type="hidden" name="kat" value="<?print ("$kat");?>">
            <FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1"><br><b>Hvis ingen vælges sendes til alle på listen med mindre at <i> Send kun til mig </i> er valgt</b></FONT><br><br>
            </FONT>

            <p><input type="submit" value="Send Nyhedsbrev"></p>
        </form>
        </div>
</table></td>
<?
}
?>

er er scriptet som printer $indhold og indsætter i databasen.

<?
require ('db_info.php');
$indhold = preg_replace("/<a href=\"(.+)?\">(.+)?<\/a>/i", "<a href=\"$1\" target=\"_blank\">$2</a>", $indhold);
$indhold = stripslashes($indhold);
echo $indhold;
      $mysql_query = "UPDATE nyhedsbrev_indhold SET indhold='$indhold' where kat='$kat'";
      $result        = mysql_db_query ($database, $query);
      mysql_query("$mysql_query");
   
    print  ("<a href=\"nyhed.php?kat=$kat\">Tilbage</a>");
?>
Avatar billede johan.o Nybegynder
19. april 2007 - 15:01 #17
Hvad hvis du nu bytter om på de to linjer her..

$indhold = preg_replace("/<a href=\"(.+)?\">(.+)?<\/a>/i", "<a href=\"$1\" target=\"_blank\">$2</a>", $indhold);
$indhold = stripslashes($indhold);

..sådan her..

$indhold = stripslashes($indhold);
$indhold = preg_replace("/<a href=\"(.+)?\">(.+)?<\/a>/i", "<a href=\"$1\" target=\"_blank\">$2</a>", $indhold);

..?..

Mvh. Johan....bare et hurtigt gæt har ikke kigget ordentligt efter endnu :)
Avatar billede sj.netomia Nybegynder
19. april 2007 - 15:06 #18
så virker det perfekt..... :-)

Smid et svar og du skal få point.

1000 tak for hjælpen.
Avatar billede johan.o Nybegynder
19. april 2007 - 15:09 #19
Det var da dejligt, det kommer her, og velbekomme.

Mvh. Johan
Avatar billede johan.o Nybegynder
19. april 2007 - 15:09 #20
Arh, det gjorde det så ikke, men her :)

Mvh. Johan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester