Rel attribute in image

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

18/05/2010 23:41:28
Quote Anchor link
Je moet pas op het laatste moment, voordat je de data in de database stopt mysql_real_escape_string aanroepen. Die preg moet er dus iig voor zitten.
Zie het verschil:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
string(197) "<h3>
<img alt="" src="/kompas/images/images/Cat-alice-in-wonderland-2009-9031003-1280-1024.jpg" style="width: 200px; height: 160px" />Portfolio</h3>"
string(205) "<h3>\r\n<img alt=\"\" src=\"/kompas/images/images/Cat-alice-in-wonderland-2009-9031003-1280-1024.jpg\" style=\"width: 200px; height: 160px\" />Portfolio</h3>"

Bovenste zonder, onderste met mysql_real_escape_string.
 
PHP hulp

PHP hulp

18/12/2024 07:47:24
 
Jos Verra

Jos Verra

18/05/2010 23:44:13
Quote Anchor link
oke verander ik ff maar nu heb ik nog geen a href ervoor of was dat niet je bedoeling van deze check

srry hij zit er nu wel voor :D

Thx!!!!

Bedankt voor de hulp :)
ik d8 al der gaat iets mis maar wat :)
dus altijd mysql_real_escape_string() op het allerlaatste
doen vlak voor het invoegen in de database :)
Gewijzigd op 18/05/2010 23:49:47 door Jos Verra
 
Jos Verra

Jos Verra

19/05/2010 18:11:26
Quote Anchor link
Oke ik heb nu het volgende probleem omdat elke keer bij het bewerken alles opnieuw werd opgeslagen en hij zo keer op keer een <a href om de img bleef zetten terwijl er al 1 stond heb ik de volgende code ervoor gemaakt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
     $result
  = preg_replace('/(<a.*>)?(<img.*src="([^"]+).*\/>)(<\/a>)?/i', '<a href="$3" rel="lightbox">$2</a>', $content);
?>


Alleen heb ik in mijn geval 3 foto's naast elkaar en verwijderd hij de eerste 2 omdat er al een <a href om zit.


Wat moet ik veranderen in mij preg_replace om wel mijn functie te behouden maar ook alle 3 de foto's. Dit is de bron code zoals het moet worden.

<html>
<a href="/kompas/images/images/7.jpg" rel="lightbox"><img alt="" src="/kompas/images/images/7.jpg" style="width: 75px; float: left; height: 56px" /></a>
<a href="/kompas/images/images/8.jpg" rel="lightbox"><img alt="" src="/kompas/images/images/8.jpg" style="width: 75px; float: left; height: 56px" /></a>
<a href="/kompas/images/images/9.jpg" rel="lightbox"><img alt="" src="/kompas/images/images/9.jpg" style="width: 75px; float: left; height: 56px" /></a></
</html>
 

19/05/2010 19:09:55
Quote Anchor link
Ik zou als ik jou was een plugin o.i.d. voor ckeditor schrijven. Dacht dat het om een éénmalige actie ging.
Want je wilt natuurlijk ook niet altijd alle plaatjes in lightbox laten openen.
 
Jos Verra

Jos Verra

19/05/2010 19:43:35
Quote Anchor link
Nou eigenlijk wel want ik heb op dit moment het alleen voor de portfolio
maar ik had gehoopte de oplossing via regulaire expressie te houden ipv iets
als een plugin :(
Gewijzigd op 19/05/2010 20:05:39 door Jos Verra
 
Jos Verra

Jos Verra

19/05/2010 20:06:03
Quote Anchor link
Iemand ? please help
 
Jos Verra

Jos Verra

19/05/2010 20:49:11
Quote Anchor link
Is er dan niemand die mij kan helpen ?


Ops ik kan om 1 of andere reden me oude post niet aanpassen en of verwijderen wat stom
Gewijzigd op 19/05/2010 20:49:53 door Jos Verra
 

19/05/2010 22:46:49
Quote Anchor link
Ik ga niet zomaar meerdere ingewikkelde regexen voor je schrijven. Zeker niet als je zit te bumpen. (En daar ben je volgens mij ook bekend mee...)
 
Jos Verra

Jos Verra

19/05/2010 22:50:43
Quote Anchor link
Waarom kan ik maar 1/3 van mijn gedane posts aanpassen en geen enkele post verwijderen.

Sorry voor het bumpen. ik heb er veel gehad aan je regex heb hem iets aangepast alleen kom ik niet verder en ik moet hem morgen middag opleveren vandaar dat ik 2 keer achter elkaar poste
 

19/05/2010 22:52:57
Quote Anchor link
Posts verwijderen moet je denk ik contact met Bas of iemand anders voor moet openemen. Als je ze niet kan aanpassen kan dat een bug zijn.
Opleveren aan wie?
 
Jos Verra

Jos Verra

19/05/2010 22:54:13
Quote Anchor link
het is voor een project op school. alleen dacht ik gister klaar te zijn, maar nu kwam ik dit opeens tegen met die meerdere images achter elkaar.'

Daarom hoopte ik ook dat ik miss een hint krijg waar de fout zit o.i.d.

Alvast bedankt
Gewijzigd op 19/05/2010 23:01:21 door Jos Verra
 
Jelmer -

Jelmer -

20/05/2010 00:29:41
Quote Anchor link
Eigenlijk is het altijd beter om eerst de content zo rauw mogelijk op te slaan. In dit geval dus voordat je die <a> om je img-tags hebt gezet. Als je hem dan weer wilt bewerken in CKEditor, laad je gewoon die rauwe content weer in, en doet CKEditor niet vreemd.

Opslaan gewoon zo houden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php  
    mysql_connect('localhost','root','');
    mysql_select_db('rp');
    
    $content = mysql_real_escape_string($_POST['main']);
    $id = intval($_POST['p_Id']); // intval voor veiligheid (lees over SQL injection)
    
    $sql = 'UPDATE pages  
            SET p_Text="'
.$content.'"
            WHERE p_Id="'
.$id.'"';
    mysql_query($sql);
    header('location:index.php?page='.$id);
?>


Bij het uitlezen, wanneer je de pagina wilt weergeven (en niet bewerken!), dan pas vervang je de <img>-tags door <a><img></a> combinatie.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php  
    mysql_connect('localhost','root','');
    mysql_select_db('rp');
    
    $id = intval($_GET['id']);
    
    $sql = "SELECT p_Text FROM pages WHERE p_Id = " . $id;
    
    $result = mysql_query($sql);
    
    list($content) = mysql_fetch_row($result);
    
    $content = preg_replace(
        '%(<img.+?src="([^"]+)".*?(?:/>|">| >))%',
        '<a href="$2" rel="lightbox">$1</a>',
        $content);
    
    echo $content;
?>


Als je de pagina bewerkt, komen die <a>'s er niet omheen, dus sla je ze ook niet op in de database, dus worden ze ook niet dubbel getoond.
 

Pagina: « vorige 1 2 3



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.