qualitum logo
Formatera bredvidliggande kodtaggar ihop?

PHPportalen Forum Index » PHP
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
pettolajnen



Medlem i: 2834 dagar
Från: Täby
Status: Offline



#722693
Inlägg Skrivet: 2012-04-16 17:39      Ämne: Formatera bredvidliggande kodtaggar ihop? Citera

Jag vill att om flera [bild]-taggar ligger bredvid varandra i en text, t ex:

KOD:
1:
[bild=1][bild=2][bild=3][bild=4]


så ska alla taggarna kunna behandlas samtidigt i en funktion så att jag kan returnera olika resultat beroende på hur många dom är.

Det fungerar ju inte med:

PHP:
1:
 $string preg_replace_callback('|\[bild=(.*?)\]|''fix_image'$string); 


Så om ovanstående kunde känna av om flera ligger bredvid varandra och köra in alla dom i fix_image samtidigt så vore det bra. Men det kanske fungerar på något annat sätt?

Hur ska man göra?
 

_________________
http://www.websitefactory.se
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
Azreal
Administratör



Medlem i: 2788 dagar
Från: Uppsala, bor i Göteborg
Status: Offline



#722695
Inlägg Skrivet: 2012-04-16 18:21      Ämne: Citera

Läste lite snabbt på php.net.

Om ditt uttryck hittar flera träffar så skall dessa hamna i en array.
Då borde du i din funktion kunna hantera det där ex:

PHP:
1:
 function callback_function($matches){
2:
 if(is_array($matches)){
3:
  //hantera flera träffar
4:
 }else{
5:
 //hanter en träff
6:
 }
7:
 
8:
return true;
9:
 
10:
 

_________________
Konsultation via PM, inte gratis.
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
pettolajnen



Medlem i: 2834 dagar
Från: Täby
Status: Offline



#722696
Inlägg Skrivet: 2012-04-16 18:24      Ämne: Citera

Jo, det vet jag faktiskt. Men problemet är att den inte tar hänsyn till om träffarna ligger bredvid varandra i koden. Den bara hämtar alla träffar i texten ju?
 

_________________
http://www.websitefactory.se
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
Azreal
Administratör



Medlem i: 2788 dagar
Från: Uppsala, bor i Göteborg
Status: Offline



#722698
Inlägg Skrivet: 2012-04-16 18:26      Ämne: Citera

Det stämmer ja, då har jag inget förslag till dig tyvärr.
 

_________________
Konsultation via PM, inte gratis.
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
pettolajnen



Medlem i: 2834 dagar
Från: Täby
Status: Offline



#722702
Inlägg Skrivet: 2012-04-16 19:29      Ämne: Citera

Jag börjar komma en bit på väg. Denna fungerar:

PHP:
1:
 $string preg_replace_callback('|\[bild=(.*?)\](?![\[])|''fix_image'$string); 


OM taggarna ligger precis efter varandra. Men inte om det finns mellanslag eller radbrytningar emellan. Finns det något sätt att säga åt funktionen att ignorera mellanslag och radbrytningar?

EDIT:

Denna ignorerar mellanslag, men inte radbyten:
PHP:
1:
 $string preg_replace_callback('|\[bild=.*?\](?![(\[bild=.*?\] ])|''fix_image'$string); 
 

_________________
http://www.websitefactory.se
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
Sawny



Medlem i: 1008 dagar

Status: Offline



#722729
Inlägg Skrivet: 2012-04-17 17:36      Ämne: Citera

PHP:
1:
 $string preg_replace_callback('|\[bild=.*?\](?![(\[bild=.*?\]([\s\n\r])*])|''fix_image'$string); 


La till: ([\s\n\r])*
\s för space och tab. \n\r för radbrytning.
 

_________________
HTML, CSS, PHP, JS
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo