Rel attribute in image
Zie het verschil:
Code (php)
1
2
3
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>"
<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.
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
Code (php)
1
2
3
2
3
<?php
$result = preg_replace('/(<a.*>)?(<img.*src="([^"]+).*\/>)(<\/a>)?/i', '<a href="$3" rel="lightbox">$2</a>', $content);
?>
$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>
Want je wilt natuurlijk ook niet altijd alle plaatjes in lightbox laten openen.
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
Iemand ? please help
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
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...)
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
Opleveren aan wie?
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
Opslaan gewoon zo houden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
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);
?>
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;
?>
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.