Avatar billede cmau Nybegynder
09. august 2006 - 23:19 Der er 11 kommentarer og
1 løsning

Problem med ' når jeg includer

Hejsa jeg har nedenstående kode, som virker fint, bortset fra når der på siden der includes er et ' i teksten, da jeg jo udskriver det i javascript. Hvordan kan jeg få \ foran alle 'er som findes på include('http://www.mmradio.org/trackplay_clean.php');.

<?
if(@fopen("http://www.mmradio.org/trackplay_clean.php", "r")) {
    include('http://www.mmradio.org/trackplay_clean.php');
} else {
    echo '<font color="#FF0000">Vi kan midlertidig ikke få kontakt til MMRadio\'s server. Prøv evt. at genindlæse siden.</font>';
}
?>
Avatar billede cmau Nybegynder
09. august 2006 - 23:23 #1
Okay det var en meget dårlig forklaring. Undskyld. Her er en anden.

Jeg har hele min kode her under. Den virker fint, indtil MMradio spiller en sang, hvis navn indeholder et '-tegn, så vil denne jo komme mellem document.write(' og ');

Kode:
document.write('<table  width="350" onclick="window.open(\'http://www.mmradio.org\');" style="cursor:pointer;border:1px solid #583604;" background="images/currentlyplaying.png"><tr>');
document.write('<td width="100%" height="35">&nbsp;</td>');
document.write('</tr><tr>');
document.write('<td width="100%" height="155" valign="top"><marquee class="left"><?
if(@fopen("http://www.mmradio.org/trackplay_clean.php", "r")) {
    include('http://www.mmradio.org/trackplay_clean.php');
} else {
    echo '<font color="#FF0000">Vi kan midlertidig ikke få kontakt til MMRadio\'s server. Prøv evt. at genindlæse siden.</font>';
}
?></marquee></td>');
document.write('</tr></table>');
Avatar billede iss Novice
09. august 2006 - 23:24 #2
Lad være med at bruge include? Brug f.eks file_get_contents() kan dog ikke huske om den kan tage http wrapper..
Avatar billede iss Novice
09. august 2006 - 23:27 #3
Det kan den...
Avatar billede cmau Nybegynder
09. august 2006 - 23:47 #4
Hmm ved ikke hvordan denne fungerer?
Avatar billede iss Novice
09. august 2006 - 23:55 #5
Jeg kan en hemmelig side: php.net/file_get_contents
Avatar billede cmau Nybegynder
10. august 2006 - 00:41 #6
Der er ingen eksempler, som jeg synes plejere at være, har gloet inden jeg skrev 09/08-2006 23:47:42
Avatar billede coderdk Praktikant
10. august 2006 - 02:20 #7
echo addslashes( file_get_contents( $url ) );

? måske uden addslashes alt efter hvad du vil - Der er ingen harme i at prøve selv ;) Der står hvad den gør, hvad skal du bruge eksempler til? ;)
Avatar billede iss Novice
10. august 2006 - 08:36 #8
Med ingen eksempler mener du at de ikke har skrevet:
string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )
Skulle være nok til at kunne komme til:
$string = file_get_contents("http://www.mmradio.org/trackplay_clean.php");
Og fra php.net/str_replace ville jeg finde:
mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )
Som så jeg fik til:
$string = str_replace("'", "\'", $string);
Så langt så godt så vil man også have det udskrvet der kigger vi på php.net/echo og finder:
void echo ( string arg1 [, string ...] )
Som så siger mig at vi skal lave en:
echo $string;
Bingo lavet ved hjælp af manual...

PS grunden til addslashes ikke er en god ide til dette er at den laver \ om til \\ og andre som ikke har noget at sige her, som efter ' er den eneste der er "farlig" her. dog her jeg ikke taget højde for at en string skulle ende med \ som også kunne lavet møg i det. det nemmeste ville være at lægge et mellemrum på $string... bare ved udskrivelse:
echo $string." ";

Så det endelige svar må være:
$string = file_get_contents("http://www.mmradio.org/trackplay_clean.php");
$string = str_replace("'", "\'", $string);
echo $string." ";
Eller bare:
echo str_replace("'", "\'", file_get_contents("http://www.mmradio.org/trackplay_clean.php"))." ";
Se så nemt var det....
Avatar billede cmau Nybegynder
10. august 2006 - 11:20 #9
Tak for det, men hvis jeg så gerne vil have det sammen med:

<?
if(@fopen("http://www.mmradio.org/trackplay_clean.php", "r")) {
    echo str_replace("'", "\'", file_get_contents("http://www.mmradio.org/trackplay_clean.php"))." ";
} else {
    echo '<font color="#FF0000">Vi kan midlertidig ikke få kontakt til MMRadio\'s server. Prøv evt. at genindlæse siden.</font>';
}
?>

Ville den så se sådan her ud? Eller hvordan?
Avatar billede iss Novice
10. august 2006 - 22:02 #10
Ja
Avatar billede cmau Nybegynder
24. august 2006 - 17:03 #11
samid svar
Avatar billede cmau Nybegynder
30. september 2006 - 12:08 #12
NU der gået en måned, så jeg tager selv pointsene kontakt mig hvis du vil have dem.
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