[PHP] hoe een " invoegen in een dynamisch stuk tekst?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • kmf
  • Registratie: November 2000
  • Niet online
Ik heb geen idee hoe je zo'n vraag kan opzoeken op internet. Een "-teken is niet zo'n goed zoekwoord... dus vraag ik het maar even hier.

Ik heb het volgende probleem

Een URL wordt zo in een variabele neergezet.

PHP:
1
$newest['last_topic'] = "<a href='{$ibforums->base_url}showtopic={$newest['last_id']}&view=getnewpost' title='{$text}'>{$newest['last_title']}</a>";


Ik wil dit er aan toevoegen

PHP:
1
onMouseover="ddrivetip('$text','yellow', 300)" "onMouseout="hideddrivetip()"


Zodat de url uiteindelij zo uit komt te zien:

code:
1
<a href='http://www.XXX.com/ergens.php' title=' WAT TEXT ' onMouseover="ddrivetip(' WAT TEXT ','yellow', 300)' onMouseout='hideddrivetip()">BLABLABLA</a><br />By: <a href='http://www.XXX.com/ergens.php'>BLABLABLA</a>



Maar ik kan geen " gebruiken voor de
code:
1
onMouseover="ddrivetip('$text','yellow', 300)" "onMouseout="hideddrivetip()"


Want dat geeft uiteraard een parse error.

Ik kan ook niet gewoon een ' gebruiken, want dan werkt de javascript niet.

Enig idee hoe ik de " toch gewoon kan meenemen? een \" wilt niet werken helaas, dan wordt het " toch een '

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp


Acties:
  • 0 Henk 'm!

  • om3ega
  • Registratie: Maart 2001
  • Laatst online: 00:11
(Gokje?)
Misschien alles van onmouseover in een string zetten en deze string er aan vast plakken?

Hmm , nee dan heb je hetzelfde probleem..

Laat maar ik :z nog een beetje :)

[ Voor 30% gewijzigd door om3ega op 18-02-2004 14:05 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Gewoon je variablen buiten de quotes halen? Dus met de punt: . aan elkaar verbinden?
PHP:
1
2
3
<?PHP
echo '<a href="?test='.$test.'" onMouseOver="'."jsfunction('hallo allemaal');".'">link</a>';
?>

[ Voor 164% gewijzigd door djluc op 18-02-2004 14:10 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

PHP:
1
2
3
4
5
echo "<a href=\"http://www.XXX.com/ergens.php\" 
   title=\" WAT TEXT \" 
   onMouseover=\"ddrivetip(' WAT TEXT ','yellow', 300)\" 
   onMouseout=\"hideddrivetip()\">BLABLABLA</a><br />
   By: <a href=\"http://www.XXX.com/ergens.php\">BLABLABLA</a>";


attributen in html moeten omsloten zijn met " niet ' :)

[ Voor 20% gewijzigd door Bosmonster op 18-02-2004 14:08 ]


Acties:
  • 0 Henk 'm!

  • kmf
  • Registratie: November 2000
  • Niet online
Bosmonster schreef op 18 februari 2004 @ 14:06:
PHP:
1
2
3
4
5
echo "<a href=\"http://www.XXX.com/ergens.php\" 
   title=\" WAT TEXT \" 
   onMouseover=\"ddrivetip(' WAT TEXT ','yellow', 300)\" 
   onMouseout=\"hideddrivetip()\">BLABLABLA</a><br />
   By: <a href=\"http://www.XXX.com/ergens.php\">BLABLABLA</a>";


attributen in html moeten omsloten zijn met " niet ' :)
helaas, had ik al geprobeerd.
Uiteindelijk maakt ie er toch ' van.. en dan wordt de javascriptcode niet gepakt.

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

athlonkmf schreef op 18 februari 2004 @ 14:15:
[...]


helaas, had ik al geprobeerd.
Uiteindelijk maakt ie er toch ' van.. en dan wordt de javascriptcode niet gepakt.
Ik snap niet wat je bedoelt? 'hij' maakt er ' van? Wie maakt van jouw " een '? Want dat zou natuurlijk nooit mogen gebeuren :P

(De regel die ik je gaf werkt gewoon en is een prima print)

[ Voor 21% gewijzigd door Bosmonster op 18-02-2004 14:21 ]


Acties:
  • 0 Henk 'm!

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 14:42
Het kan zijn dat ik het verkeerd begrijp, maar is jouw probleem niet op te lossen door de quotes te escapen?

PHP:
1
2
3
4
<?
$insert_stringetje = "onMouseOut=\"MaakMeGek();\"";
$var = "<a href=\"blaat.php\"". $insert_stringetje .">Linkje</a>";
?>

Bedoelde je dit, of zit ik er weer naast? :P

Acties:
  • 0 Henk 'm!

  • Jerry
  • Registratie: September 2001
  • Laatst online: 09-04-2022

Jerry

Who?

Bosmonster schreef op 18 februari 2004 @ 14:06:
PHP:
1
2
3
4
5
echo "<a href=\"http://www.XXX.com/ergens.php\" 
   title=\" WAT TEXT \" 
   onMouseover=\"ddrivetip(' WAT TEXT ','yellow', 300)\" 
   onMouseout=\"hideddrivetip()\">BLABLABLA</a><br />
   By: <a href=\"http://www.XXX.com/ergens.php\">BLABLABLA</a>";


attributen in html moeten omsloten zijn met " niet ' :)
Moet dat :?

Als ik een echo doe in php met html doe ik meestal zo (bv):

PHP:
1
echo "<table width='100%'  border='0' cellspacing='0' cellpadding='2'>";


Dat werkt ook gewoon.

Specs
Youtube celebrity
D3 Crusader


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Dat werkt ook gewoon.
Maar is niet volgens de regeltjes van het W3... Het is beter om het volgens de standaarden te doen, maar goed dat wordt een beetje offtopic hier.

Acties:
  • 0 Henk 'm!

Verwijderd

Dit is misschien de oplossing voor je probleem. je kan het de source code iig zien op http://www.monkeyservers.com/tweakers/test.php


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<? echo "<a href='http://www.XXX.com/ergens.php'onMouseover=";
?>

"

<? echo "ddrivetip('$text','yellow', 300)";
?>

"

<? echo " onMouseout=";?>

"

<? echo "hideddrivetip()";
?>

"

<? echo ">Link 1</a>";
?>


Ik heb gewoon de benodigde " buiten PHP gezet, dan worden ze altijd ge-echoed. t werkt iig :)

[ Voor 21% gewijzigd door Verwijderd op 18-02-2004 14:46 ]


Acties:
  • 0 Henk 'm!

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 14:42
Dames, wat doen we allemaal moeilijk met ranzige buiten-sluit-oplossingen of verkeerd gebruik van single-quotes? Het is echt heel simpel hoor, door \" krijg je gewoon een " op het scherm:
PHP:
1
2
3
<? 
echo "Is het nou \"blaat\" of \"blaten\"?";
?>

geeft netjes als output:
Is het nou "blaat" of "blaten"?
Toch een stuk netter zo? :)

Acties:
  • 0 Henk 'm!

Verwijderd

absoluut. Ik gaf een alternatief in geval het werkelijk zo was dat zijn server \" vertaald als '
maar absoluut, \" werkt beter

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Mr_UnAnimouS schreef op 18 februari 2004 @ 14:38:
[...]


Moet dat :?

Als ik een echo doe in php met html doe ik meestal zo (bv):

PHP:
1
echo "<table width='100%'  border='0' cellspacing='0' cellpadding='2'>";


Dat werkt ook gewoon.
Ja maar als je het goed en netjes wilt doen doe je het met ge-ecapede dubbele aanhalingstekens:
PHP:
1
2
3
<?php
echo "<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding="2\">";
?>
Of gewoon buiten PHP-code, het is immers toch HTML. Dus zo iets:
PHP:
1
2
3
4
5
<font size="2" color="red">
<?php
echo "Ik heb een willekeurig getal getrokken tussen 1 en 10:".rand(1,10);
?>
</font>
Rickbv schreef op 18 februari 2004 @ 14:54:
Dames, wat doen we allemaal moeilijk met ranzige buiten-sluit-oplossingen of verkeerd gebruik van single-quotes? Het is echt heel simpel hoor, door \" krijg je gewoon een " op het scherm:
PHP:
1
2
3
<? 
echo "Is het nou \"blaat\" of \"blaten\"?";
?>

geeft netjes als output:
[...]


Toch een stuk netter zo? :)
Beter is het om &quot; te gebruiken bij quotes midden in ene weer te geven tekst op een webpagina:
PHP:
1
2
3
<? 
echo "Is het nou &quot;blaat&quot; of &quot;blaten&quot;?";
?>
Dat lijkt mij althans de officiële te gebruiken code. :)

[ Voor 54% gewijzigd door Joen op 18-02-2004 15:03 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Jeroen heeft nog nooit gezien dat dit ook mag 8) en vergeet verder nog wat backslashes bij de cellpadding:
PHP:
1
2
3
<?php 
echo '<table width="100%"  border="0" cellspacing="0" cellpadding="2">'; 
?>

[ Voor 20% gewijzigd door djluc op 18-02-2004 15:04 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Voor het gebruik van quotes binnen attributen moet je gewoon htmlentities gebruiken. Om e.e.a. nog een beetje leesbaar te houden zou ik je aan willen raden printf () en / of sprintf () te gebruiken:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
function html ( $str ) {
   return htmlentities ( $str, ENT_QUOTES ); // escaped ook single quotes
}

$someHref = sprintf ( 
   '<a href="%s" onmouseover="%s" onmouseout="%s">%s</a>',
   html ( 'somepage.php?someArg=1&someOtherArg=2' ),
   html ( 'showSomeStuff ( \'myStuff\' );' ),
   html ( 'hideSomeStuff ( \'myStuff\' );' ),
   html ( 'More info >>>' )
);
?>


Resultaat:

code:
1
<a href="somepage.php?someArg=1&amp;someOtherArg=2" onmouseover="showSomeStuff ( 'myStuff' );" onmouseout="hideSomeStuff ( 'myStuff' );">More info >>></a>

edit:
Argh, entities is echt een ramp in RML 8)7 8)7

Nou, probeer het iig even uit, het bovenstaande resultaat is dus niet helemaal wat je krijgt

[ Voor 19% gewijzigd door drm op 18-02-2004 15:15 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • kmf
  • Registratie: November 2000
  • Niet online
toch nog even dat laatste tip proberen :)

[ Voor 80% gewijzigd door kmf op 18-02-2004 15:09 ]

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp


Acties:
  • 0 Henk 'm!

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 14:42
JeroenM_tbs schreef op 18 februari 2004 @ 15:00:
[...]
Beter is het om &quot; te gebruiken bij quotes midden in ene weer te geven tekst op een webpagina:
PHP:
1
2
3
<? 
echo "Is het nou &quot;blaat&quot; of &quot;blaten&quot;?";
?>
Dat lijkt mij althans de officiële te gebruiken code. :)
Hmz, dat wist ik niet. Enige nadeel hiervan vind ik de onoverzichtelijkheid. Even snel een tekst wijzigen met die dingen erin is er niet meer bij. Maar ook daar zullen wel de nodige functies voor te schrijven zijn die dat vervangen, de vraag is alleen of het allemaal wel nodig is.

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Rickbv schreef op 18 februari 2004 @ 15:09:
[...]

Hmz, dat wist ik niet. Enige nadeel hiervan vind ik de onoverzichtelijkheid. Even snel een tekst wijzigen met die dingen erin is er niet meer bij. Maar ook daar zullen wel de nodige functies voor te schrijven zijn die dat vervangen, de vraag is alleen of het allemaal wel nodig is.
Tsjah of je doet:
PHP:
1
2
3
4
<? 
$blaat = "Is het nou \"blaat\" of \"blaten\"?";
echo htmlspecialchars($blaat);
?>
;) :P
Dan worden ze wel door PHP omgezet van " naar &quot;. ;)

[ Voor 12% gewijzigd door Joen op 18-02-2004 15:15 ]


Acties:
  • 0 Henk 'm!

Verwijderd

JeroenM_tbs schreef op 18 februari 2004 @ 15:00:

[...]

Beter is het om &quot; te gebruiken bij quotes midden in ene weer te geven tekst op een webpagina:
PHP:
1
2
3
<? 
echo "Is het nou &quot;blaat&quot; of &quot;blaten&quot;?";
?>
Dat lijkt mij althans de officiële te gebruiken code. :)
Jaja, dit zou werken voor text met quotes omdat de browser dit vertaald en weergeeft als ", maar in de source blijft het dan als &quot staan en heeft dus geen zin voor URL's. Dit zou resulteren in:
code:
1
<a href=&quothttp:\\www.blah.com&quot>klik</a>

:)
De \" is de enige echte oplossing om in een URL de " te kunnen gebruiken in de source.

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Verwijderd schreef op 18 februari 2004 @ 15:15:
[...]


Jaja, dit zou werken voor text met quotes omdat de browser dit vertaald en weergeeft als ", maar in de source blijft het dan als &quot staan en heeft dus geen zin voor URL's. Dit zou resulteren in:
code:
1
<a href=&quothttp:\\www.blah.com&quot>klik</a>

:)
De \" is de enige echte oplossing om in een URL de " te kunnen gebruiken in de source.
Ja, ok. Ik had dan ook even niet over URL's. \" is inderdaad de enige juiste methode ;)

[ Voor 7% gewijzigd door Joen op 18-02-2004 15:34 ]

Pagina: 1