webForumDet fria alternativet

Regexp-problem, placera bilder med formulär

PHPur PHP

4 svar · 260 visningar · startad av web00132

web00132Medlem sedan maj 2001797 inlägg
#1

Jag har ett formulär där användare ska kunna skriva t ex nyhetstexter och lägga in bilder tillsammans med texten. För att göra det ska man kunna skriva typ <rightpic=bild.jpg> och då ska PHP göra om det till ungefär <img src='bild.jpg' style='float: right' />. Detta har jag försökt fixa med regexp (är dock nybörjare på det området, vilket ni kanske märker här):

$line = 'en massa text centerpic="2.php" mer text';
while (ereg("centerpic=\"[^\"]*\"", $line, $match))
{
	echo $match[0]."<br />";
	$replace = ereg_replace("\?", "\?", $match[0]);
	ereg("^[0-9]{1}?$", $replace, $match2);
	$line = ereg_replace($replace, "<img src=".$match2[0].".jpg>", $line);
}
echo $line;

Den här satsen har jag försökt pilla till nu jag vet inte hur länge. Vad tror ni, är regexp det bästa sättet för det här problemet och hur ska det isf se ut?! Tack på förhand!

Kan förresten visa det som skrivs ut i HTML-koden av scriptet ovan:

centerpic="2.php"<br /><br />
<b>Warning</b>:  ereg(): REG_BADRPT in <b>/home/adress...</b> on line <b>7</b><br />
en massa text <img src=.jpg> mer text

Jag skrev inte ut taggarna till <centerpic> för jag ville få det att funka lite bättre först. :)

MatteMedlem sedan aug. 20002 975 inlägg
#2

Din textbeskrivning stämmer inte överens med din exempelkod på vad du frågar efter, men utgår jag från texten borde det bli något i stil med:

$line = 'qwerty rightpic="test.jpg" asdfgh centerpic="test2.jpg" qwerty leftpic="test3.jpg" asdfgh';

$pattern[] = '/(right|left)pic="(.*?)"/i';
$replace[] = '<img src="$2" style="float:$1" />';
$pattern[] = '/centerpic="(.*?)"/i';
$replace[] = '<img src="$1" />';

$line = preg_replace($pattern, $replace, $line);
web00132Medlem sedan maj 2001797 inlägg
#3

Precis, fan va schysst! :bire
Fast jag ville ha hakar (så här <leftpic="blabla.gif">) liksom men det löste jag själv, var jätteotydlig ser jag i mitt första inlägg. Om man vill lära sig mer om regexp, finns det nån bra svensk guide som du vill tipsa om? Har hittat en del på nätet (+ en hel del trådar här) och ett par PHP-böcker som går igenom det lite kort men jag är inte riktigt nöjd. Har du nåt ess i ärmen?

MatteMedlem sedan aug. 20002 975 inlägg
#4

Det finns säkert svenska guider, dock ingen jag känner till.

Annars är manualen ett bra ställe.
http://se2.php.net/manual/en/ref.pcre.php samt funktioner därunder.
http://se2.php.net/manual/en/reference.pcre.pattern.modifiers.php
http://se2.php.net/manual/en/reference.pcre.pattern.syntax.php
Glöm då inte läsa användarnoteringarna.

web00132Medlem sedan maj 2001797 inlägg
#5

Man får så himla mycket på en gång i manualen, vore härligt med en crashcourse och gärna på svenska för latmaskar som jag. Men det är ju sällsynt med det mesta vad gäller programmering osv. Tack iaf! :)

122 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)