abonnement Unibet Coolblue Bitvavo
pi_25648995
Op deze manier krijg je een foutmelding waar je meer aan hebt:

1
2
3
4
5
6
$result = mysql_query($sql);
if ($result===false) {
   echo mysql_errno().': '.mysql_error()."\n";
   echo $sql."\n";
   die();
}


Het is ook handig om error reporting aan te zetten. Dat kan in php.ini of in het script

1error_reporting(E_ALL);
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas dinsdag 22 maart 2005 @ 20:29:25 #27
1972 Swetsenegger
Egocentrische Narcist
pi_25667592
-edit- domme vraag en niet verder gekeken dan m'n neus lang is
pi_25671497
Ik ben een ramp in regular expressions. Ik wil de volgende waarden vervangen:
1
2
3
4
01 Artiestnaam     -> Artiestnaam
[01] Artiestnaam     -> Artiestnaam
(01) Artiestnaam     -> Artiestnaam
01. Artiestnaam     -> Artiestnaam


Ik heb na wat tutorials de volgende briljante ( ) regexp in elkaar:
1/[0-9]{1,2} /

Waarmee "01 Artiestnaam" vervangen wordt in "Artiestnaam".

Maar hoe 'vertel' ik in regexp dat een teken er in mag staan? In het geval van de laatste, er MAG een punt komen na bovenstaande expressie. En bij de tweede en derde; er MAG een [ of ( en een ) of ] in staan.

Ik wil het graag in één regexp hebben ipv met str_replace, strpos en substr te kloten
  FOK!-Schrikkelbaas dinsdag 22 maart 2005 @ 22:41:07 #29
1972 Swetsenegger
Egocentrische Narcist
pi_25671801
quote:
Op dinsdag 22 maart 2005 22:32 schreef Heliospan het volgende:
Ik ben een ramp in regular expressions. Ik wil de volgende waarden vervangen:
[ code verwijderd ]

Ik heb na wat tutorials de volgende briljante ( ) regexp in elkaar:
[ code verwijderd ]

Waarmee "01 Artiestnaam" vervangen wordt in "Artiestnaam".

Maar hoe 'vertel' ik in regexp dat een teken er in mag staan? In het geval van de laatste, er MAG een punt komen na bovenstaande expressie. En bij de tweede en derde; er MAG een [ of ( en een ) of ] in staan.

Ik wil het graag in één regexp hebben ipv met str_replace, strpos en substr te kloten
Ik snap het niet, dan wordt het dus
[]artiestnaam
en
()artiestnaam
en
.artiestnaam

wil je dat?

Ow en in deel 1 staat een paginaatje of 2 over regexps waarvan je veel kan leren.
Nog niet genoeg, want superrembo maakt betere expressies dan ik
pi_25671901
Deel 1 bedoel je? (edit: ja dus )
Ik wil dat alle onzin voor een artiestnaam verwijderd wordt. Er bestaan artiestnamen als 711, die dus niet gefilterd moeten worden, maar als in een artiestnaam rotzooi zit, bijvoorbeeld het tracknummer, en die op een manier verwerkt is als "[01] Blink 182" wil ik dat de "[01] " gewist wordt en "Blink 182" overblijft.

Met andere woorden, alleen de "artiestnaam" in je post wil ik behouden.
Je kunt "mag" op twee manieren lezen besef ik nu.
pi_25672151
De vraag is natuurlijk wat er allemaal onder "rotzooi" valt.
pi_25672203
Dit:

1
2
3
4
01 Artiestnaam
[01] Artiestnaam
(01) Artiestnaam
01. Artiestnaam


Alles voor "Artiestnaam" moet weg in bovenstaande gevallen

Een paar voorbeelden die ik in mijn playlist tegen kom:
1
2
3
4
(01) Foo Fighters (- All My Life)
01 doe maar (- sinds een dag of twee)
01_solar_fields_ (-_union_light) (underscores worden vervangen door een andere filter)
10. Magic Box (- Carillon)


Het betreft alleen de artiestnaam. De nummers, tussen haakjes, zijn in deze vraag niet relevant.
  FOK!-Schrikkelbaas dinsdag 22 maart 2005 @ 22:55:29 #33
1972 Swetsenegger
Egocentrische Narcist
pi_25672263
Wat light zegt
Je weet in dit geval eigenlijk 'niets'.
De artiesten naam heeft geen standaard patroon, want dat kan alles zijn, van letters, cijfers, etc in willekeurige volgorde EN de 'rotzooi' kan alles zijn in willekeurige volgorde.

Je hebt dus erg weinig houvast. een reguliere expressie herkent immers een patroon, welke er in jouw geval niet is...
pi_25672458
quote:
Op dinsdag 22 maart 2005 22:55 schreef Swetsenegger het volgende:

Je hebt dus erg weinig houvast. een reguliere expressie herkent immers een patroon, welke er in jouw geval niet is...
Misschien kom ik erg dom en vasthoudend over, maar volgens mij is er wel een patroon. Vanaf de linkerkant van de string (de eerste character):
- niks, een '(', of een '['
- Getal van twee cijfers
- niks, een ')', of een ']'
- mogelijk een punt
- Een spatie

Hiermee wordt alles uit mijn vorige post gematched. Een artiestnaam als "Massive Attack" niet, die voldoet niet aan de eisen, een artiestnaam als "(01) Foo Fighters" wel.
pi_25672554
Het begint al met de "rotzooi". Als je een artiest hebt waarbij de naam begint met een paar nummers dan hang je meteen al. Dus iets als
101 doe maar (- sinds een dag of twee)
is eigenlijk niet meer te filteren. En de scheiding tussen artist en title is ook niet duidelijk, het wordt makkelijker als je daar een " - " kunt garanderen. Maar dan blijf je met het probleem zitten van die artiesten waarvan de naam begint met cijfers.
  FOK!-Schrikkelbaas dinsdag 22 maart 2005 @ 23:05:15 #36
1972 Swetsenegger
Egocentrische Narcist
pi_25672623
quote:
Op dinsdag 22 maart 2005 23:00 schreef Heliospan het volgende:

[..]

Misschien kom ik erg dom en vasthoudend over, maar volgens mij is er wel een patroon. Vanaf de linkerkant van de string (de eerste character):
- niks, een '(', of een '['
- Getal van twee cijfers
- niks, een ')', of een ']'
- Een spatie

Hiermee wordt alles uit mijn vorige post gematched. Een artiestnaam als "Massive Attack" niet, die voldoet niet aan de eisen, een artiestnaam als "(01) Foo Fighters" wel.
Dat klopt, maar [.01.] zal blijven staan
Ik zal eens gaan puzzelen, maar niet vanavond
pi_25672679
quote:
Op dinsdag 22 maart 2005 23:03 schreef Light het volgende:
Het begint al met de "rotzooi". Als je een artiest hebt waarbij de naam begint met een paar nummers dan hang je meteen al.
Dat klopt. Alleen als een artiestnaam begint met 01 t/m 09 zou het in dat geval te filteren zijn. Er is geen bandnaam die met die tekens begint.
quote:
En de scheiding tussen artist en title is ook niet duidelijk, het wordt makkelijker als je daar een " - " kunt garanderen. Maar dan blijf je met het probleem zitten van die artiesten waarvan de naam begint met cijfers.
Dat zijn twee verschilende variabelen. Dus ja, kan ik garanderen
pi_25672718
Beetje laat .
Die Welt ist alles was der Fall ist.
pi_25673272
quote:
Op dinsdag 22 maart 2005 23:06 schreef Heliospan het volgende:

[..]

Dat klopt. Alleen als een artiestnaam begint met 01 t/m 09 zou het in dat geval te filteren zijn. Er is geen bandnaam die met die tekens begint.
Maar je hebt soms meer dan 9 tracks op een cd. En op lyrics.com vind ik wel "16 Horsepower", die gaat dus ook mis.
quote:
[..]

Dat zijn twee verschilende variabelen. Dus ja, kan ik garanderen
Ok, dat scheelt Dan wordt het dus iets van filteren voor die cijfers en de rest, en dan die rest teruggeven. Het gedeelte "rest" is niet zo lastig, maar het gedeelte met de cijfers kan eventueel lastig zijn. Er is wel iets voor te vinden maar dan kan ik niet garanderen dat die 16 Horsepower goed gaat (sterker, die gaat fout).

Je gaat dan iets krijgen als
1/[(\[\(]?[01]\d\.?[\)\]]?\s(.*)/

Maar die regexp is niet getest. Ik ga er wel vanuit dat je de underscores eerst al door spaties vervangt.
pi_25673561
Ik heb net een alternatief stuk geschreven, maar heb het liever in een pattern. Maar misschien snappen jullie het als je deze code even probeert:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
//  $art = "08 Test";            WEL
//    $art = "[12] Test";            WEL
//    $art = "{01} Test";            WEL
//    $art = "(01) Test";            WEL
//    $art = "09. Test";            WEL
//    $art = "Massive Attack";    NIET
//    $art = "182 Stitches";        NIET

    
$crap_begin = array("[", "(", "{");
    
$crap_eind = array("]", ")", "}");
    
    if(
in_array( substr( $art, 0, 1 ), $crap_begin )
        &&
in_array( substr( $art, ( strpos ($art, " ") - 1 ), 1), $crap_eind) )
            
$art = substr( $art, ( strpos ( $art, " ") + 1 ) );

    if(
substr( $art, 0, 1 ) == "0"
        
&& preg_match( "/[0-9]/", substr( $art, 1, 1 ) ) )
            
$art = substr( $art, 2 );

    if(
substr( $art, 0, 1 ) == "." )
            
$art = substr( $art, 1 );

    
$art = trim($art);
?>


@Light; ik probeer het even, bedankt

-edit-
Lijkt met een kleine wijziging goed te werken! Bedankt!

[ Bericht 2% gewijzigd door Heliospan op 22-03-2005 23:45:17 ]
pi_25674305
quote:
Op dinsdag 22 maart 2005 23:32 schreef Heliospan het volgende:

Lijkt met een kleine wijziging goed te werken! Bedankt!
Dan ben ik toch benieuwd wat je eraan hebt aangepast
pi_25674351
Deze werkt goed op de test-set:

1$clean = preg_replace('#^\s*[({[]?[01]?[0-9]?[)}\x5d.]?(?!\d)\s*#', '', $dirty);


1
2
3
4
5
6
7
8
9
10
#            
^            begin string
\s*          0 of meer spaties of tabs
[({[]?       0 of 1 keer een (, { of [
[01]?        0 of 1 keer een 0 of 1
[0-9]?       0 of 1 keer een cijfer
[)}\x5d.]?   0 of 1 keer een ), }, ] of .
(?!\d)       niet gevolgd door een cijfer
\s*          0 of meer spaties of tabs
#


[ Bericht 63% gewijzigd door SuperRembo op 23-03-2005 00:18:15 ]
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25675252
Light, ik maakt [09] van [01]. Volgens de uitleg van SuperRembo behoort dat echter niet te werken. Ik ben verward. Meerdere mensen duidden regexp aan als hoofdpijnwerk in vorige topics, en daar sluit ik me helemaal bij aan.

SuperRembo, ook bedankt! Deze werkt ook goed, behalve weer bij 16 Horsepower. Ik zal proberen een goede tussenweg te vinden
pi_25676068
Kan je niet gewoon onderstaande gebruiken:

$songtitle = preg_replace('/^[^a-z]*/i', $songtitle);

?

-r-
pi_25676188
quote:
Op woensdag 23 maart 2005 01:28 schreef Heliospan het volgende:
SuperRembo, ook bedankt! Deze werkt ook goed, behalve weer bij 16 Horsepower. Ik zal proberen een goede tussenweg te vinden
Zonder extra informatie over bestaande titels kan je die nooit onderscheiden van "16 Foo Fighters". Kan je niet beter zoeken in http://www.freedb.org?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25677046
tvp
pi_25677291
quote:
Op dinsdag 22 maart 2005 23:55 schreef SuperRembo het volgende:
Deze werkt goed op de test-set:
[ code verwijderd ]


[ code verwijderd ]
Dus 2pac wordt ook pac. Lijkt me niet de bedoeling eigenlijk.
  woensdag 23 maart 2005 @ 10:48:31 #49
93888 KillAuthority
Live Fast, Die Fun!
pi_25678655
hey in een gastenboek of op een forum kun je berichten toevoegen via een textarea (uiteraard). Als je dan in dit textarea een enter geeft

zoals dit dan wordt later bij het bekijken van het bericht die enter ook weergegeven dus een <br>
maar bij mij krijg ik 1 spatie te zien.

moet krijg ik het voor elkaar dat ik dus ook een enter te zien krijg bij het bekijken van het bericht? is dit een instelling in de database (mysql) of php/html?
The crew is out tonight!
pi_25680934
1
2
3
<?php
nl2br
();&lt;
?>
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')