| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
pettolajnen

Medlem i: 2834 dagar Från: Täby
Status: Offline
#722693
|
Skrivet: 2012-04-16 17:39
Ämne: Formatera bredvidliggande kodtaggar ihop?
|
|
|
Jag vill att om flera [bild]-taggar ligger bredvid varandra i en text, t ex:
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:
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 |
|
Azreal


Medlem i: 2788 dagar Från: Uppsala, bor i Göteborg
Status: Offline
#722695
|
Skrivet: 2012-04-16 18:21
Ämne:
|
|
|
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:
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 |
|
pettolajnen

Medlem i: 2834 dagar Från: Täby
Status: Offline
#722696
|
Skrivet: 2012-04-16 18:24
Ämne:
|
|
|
| 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 |
|
Azreal


Medlem i: 2788 dagar Från: Uppsala, bor i Göteborg
Status: Offline
#722698
|
Skrivet: 2012-04-16 18:26
Ämne:
|
|
|
| Det stämmer ja, då har jag inget förslag till dig tyvärr. |
|
|
_________________ Konsultation via PM, inte gratis. |
| Till toppen på sidan |
|
pettolajnen

Medlem i: 2834 dagar Från: Täby
Status: Offline
#722702
|
Skrivet: 2012-04-16 19:29
Ämne:
|
|
|
Jag börjar komma en bit på väg. Denna fungerar:
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:
1: $string = preg_replace_callback('|\[bild=.*?\](?![(\[bild=.*?\] ])|', 'fix_image', $string);
|
|
|
|
_________________ http://www.websitefactory.se |
| Till toppen på sidan |
|
Sawny
Medlem i: 1008 dagar
Status: Offline
#722729
|
Skrivet: 2012-04-17 17:36
Ämne:
|
|
|
1: $string = preg_replace_callback('|\[bild=.*?\](?*])|', '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 |
|
|