Ankündigung

Einklappen
Keine Ankündigung bisher.

RIS-Files auslesen und in Array speichern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • b0arderking
    hat ein Thema erstellt RIS-Files auslesen und in Array speichern.

    RIS-Files auslesen und in Array speichern

    Hallo Leute
    Ich habe ein Problem, ich hoffe es kennt sich einer mit RIS Format Specifications aus...
    Ich muss mit PHP ein .txt file auslesen, welches nach RIS Standart aufgebaut ist:
    TY - CONF
    A1 - Catania,J.
    A1 - Coates,T.
    A1 - Kegeles,S.
    A1 - Peterson,J.
    A1 - Marin,B.
    A1 - Fullilove,M.
    T1 - Predicting risk behavior with the AIDS risk reduction model (ARRM) in a random household probability sample of San Franciscans: the "AMEN" study
    Y1 - 1990///6th Annual
    VL - 6
    SP - 318
    EP - 318
    RP - Not In File
    CY - Detroit MI
    KW - risk
    KW - AIDS
    KW - models
    KW - sexual behavior
    KW - HIV
    KW - condoms
    KW - heterosexual
    KW - bisexual
    KW - ethnicity
    KW - women
    T3 - International Conference on AIDS 6
    Y2 - 1990/6/20
    M1 - 1
    N1 - OBJECTIVE: Data from the AIDS In Multi-Ethnic Neighborhoods survey are used to test Stages 1 & 3 of ARRM (a three stage process model of sexual risk behavior change; Catania, Kegeles, & Coates, 1990). Stage 1 analyses examine predictors of labeling one's sexual behavior in terms of HIV risk; Stage 3 concerns predictors of sexual behavior (e.g., condom use) (Stage 2 was not assessed in this first wave of the study but will be examined in wave 2). METHODS: Data were collected in a random household probability study of 1,781 white (41%), black (26%), and Hispanic (25%) (8% Other), unmarried respondents, aged 20-44, residing in selected "high risk" census tracts of San Francisco (Heterosexual = 83%, Homosexual = 13%, Bisexual = 4%). Labeling defined as making an accurate or inaccurate assessment of one's risk for HIV based on prior and current sexual practices. The behavioral outcome is frequency of condom use averaged across sexual partners for the past year. RESULTS: Multiple regression (Logistic & LSQ) analyses indicate that, 1) Accurate labeling of high risk behavior is related to high susceptibility beliefs (Imp. Chi Sq. =,92.46, p less than .0001), but unrelated to knowing someone with AIDS; gay relative to heterosexual men (p less than .03), and Hispanics compared to whites (p less than .01) were more likely to accurately label their behavior, 2) Greater condom use during vaginal or anal intercourse is significantly related to better sexual communication skills, higher perceived benefits and lower costs of condom use, but unrelated to religiosity, self-efficacy, and ethnicity (R's range from .50 - .66); these latter results are substantially the same for men and women, and heterosexuals and gay men. CONCLUSION: The findings 1) suggest the ARRM model is applicable to most social groups, 2) underscore the importance of interventions that enhance communication skills and teach methods of facilitating sexual enjoyment of condoms
    ER -
    der output sollte so sein:
    Typ: Conference proceeding
    Autoren: J. Catania, T. Coates, S. Kegeles, J. Peterson, B. Marin, M. Fullilove
    Titel: Predicting risk behavior with sample1the AIDS risk reduction model (ARRM) in a random household probability sample of San Franciscans: the "AMEN" study
    Erscheinungsdatum: 1990 (6th Annual)
    Ausgabe: 6
    Erste Seite: 318
    Letzte Seite: 318
    Stadt: Detroit MI
    Schlüsselworte: risk, AIDS, models, sexual behavior, HIV, condoms, heterosexual, bisexual, ethnicity, women
    Serientitel: International Conference on AIDS 6
    Zusätzliche Datumsangabe: 20.06.1990
    Sonstiges 1: 1
    Bemerkungen: OBJECTIVE: Data from the AIDS In Multi-Ethnic Neighborhoods survey are used to test Stages 1 & 3 of ARRM (a three stage process model of sexual risk behavior change; Catania, Kegeles, & Coates, 1990). Stage 1 analyses examine predictors of labeling one's sexual behavior in terms of HIV risk; Stage 3 concerns predictors of sexual behavior (e.g., condom use) (Stage 2 was not assessed in this first wave of the study but will be examined in wave 2). METHODS: Data were collected in a random household probability study of 1,781 white (41%), black (26%), and Hispanic (25%) (8% Other), unmarried respondents, aged 20-44, residing in selected "high risk" census tracts of San Francisco (Heterosexual = 83%, Homosexual = 13%, Bisexual = 4%). Labeling defined as making an accurate or inaccurate assessment of one's risk for HIV based on prior and current sexual practices. The behavioral outcome is frequency of condom use averaged across sexual partners for the past year. RESULTS: Multiple regression (Logistic & LSQ) analyses indicate that, 1) Accurate labeling of high risk behavior is related to high susceptibility beliefs (Imp. Chi Sq. =,92.46, p less than .0001), but unrelated to knowing someone with AIDS; gay relative to heterosexual men (p less than .03), and Hispanics compared to whites (p less than .01) were more likely to accurately label their behavior, 2) Greater condom use during vaginal or anal intercourse is significantly related to better sexual communication skills, higher perceived benefits and lower costs of condom use, but unrelated to religiosity, self-efficacy, and ethnicity (R's range from .50 - .66); these latter results are substantially the same for men and women, and heterosexuals and gay men. CONCLUSION: The findings 1) suggest the ARRM model is applicable to most social groups, 2) underscore the importance of interventions that enhance communication skills and teach methods of facilitating sexual enjoyment of condoms


    kann mir da einer helfen??
    es sollte mit array's geregelt sein...


    danke der antwort

  • agundur
    antwortet
    PHP-Code:
    $result preg_grep("/TY  -/"$file); 
    In Deinem Beispiel ist ein Leerzeichen Zuviel (vor dem "-/").

    Wenn Du das für für jedes Tag (TY, A1, KW ...) machst wird das recht "teuer".

    $result[0]
    Das wird so nicht hinhauen direkt auf den Schlüssel zuzugreifen. Da der gegebenenfalls bei jedem Datensatz ein anderer ist.
    Wenn schon so, dann solltest Du mit "foreach" das Ergebnis verarbeiten.

    Einen Kommentar schreiben:


  • b0arderking
    antwortet
    sorry kommt schon:

    PHP-Code:
    $dateiname 'sample1.txt';
    $file file($dateiname);
     

    $result preg_grep("/TY  -/"$file);
    $result str_replace("TY  -"""$result[0]);
     
    echo 
    $result
    jetzt muss ich den text nurnoch bearbeiten und die anderen sachen tags noch machen

    Einen Kommentar schreiben:


  • agundur
    antwortet
    habs jezt auch mit noch was anderem lösen können xD
    Evtl. könntest Du Deine Lösung ja mal hier noch Posten. Für Leute mit demselben Problem.

    Einen Kommentar schreiben:


  • b0arderking
    antwortet
    hmmm ja oke geht auch so danke dir..
    habs jezt auch mit noch was anderem lösen können xD
    aber ich danke dir

    Einen Kommentar schreiben:


  • agundur
    antwortet
    Ich glaube eine RegEx (preg_match) brauchst Du hier gar nicht.
    Ohne das Format jetzt genau zu kennen, scheint es aber doch festen Regeln zu folgen.
    So kannst Du die Datei Zeilenweise einlesen und dir ein array bauen.

    PHP-Code:
    $file './ris.txt';

    $ris  = new SplFileObject($file'r');
    $ris->setFlags(SplFileObject::SKIP_EMPTY SplFileObject::DROP_NEW_LINE);
    $collect = array();
    while(!
    $ris->eof() && ($line $ris->fgets())) {
        
    $key substr($line,0,2);
        if(!isset(
    $collect[$key]))
            
    $collect[$key] = array();
            
        
    array_push($collect[$key],substr($line,5));
    }
    echo 
    '<pre>';
    print_r($collect); 
    Deine gewünschte Ausgabe kannst Du dann über dieses array erreichen z.B.:

    PHP-Code:
    echo 'Autoren: ' implode(' ,',$collect['A1']); 

    Einen Kommentar schreiben:


  • b0arderking
    antwortet
    danke für eure antworten =)

    PHP-Code:
    $dateiname 'sample1.txt';
    $datei fopen$dateiname "r" );
    $inhalt fread$datei filesize$dateiname ) );

        if (!
    preg_match ("/TY  - /"$inhalt));

        {    

            echo 
    'blabal';

        } 
    die datei liest es aus.. und sucht nach TY -
    wie schaffe ich es nun das conf aus zu geben?
    ich weiss ich bin ein noob aber ich habe das noch nie gemacht

    Einen Kommentar schreiben:


  • Wolla
    antwortet
    Wenn du mit "php ris parser" googelst, dann kommst du gleich bei den ersten Ergebnissen auf fertigen Code.

    technosophos's LibRIS at master - GitHub

    Einen Kommentar schreiben:


  • mermshaus
    antwortet
    Im Web gesucht?

    - biborb.git -
    - ris.php - telstar - Project Hosting on Google Code

    Mit ersterem habe ich irgendwann mal rumgebastelt, das zweite habe ich mir jetzt nicht angesehen.

    Edit: Ich merke gerade, dass ich an dem Code mehrere Dinge verändert hatte. Ich werde mal überlegen, ob es sich lohnt, das irgendwo hochzuladen.

    Edit 2:↓ @Wolla: Oh, nett. Das existierte wohl noch nicht, als ich damit zu tun hatte. Habe eben nur nach dem Funktionsnamen aus meinem Archiv gesucht.

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    Zitat von b0arderking Beitrag anzeigen
    kann man bei diesem preg_match auch eine datei angeben bei der zeichenkette?
    Nein, aber man kann eine Datei vorher in einen String einlesen, und den dann als Parameter an preg_match übergeben.

    Einen Kommentar schreiben:


  • b0arderking
    antwortet
    kann man bei diesem preg_match auch eine datei angeben bei der zeichenkette? und wie? sonst begreife ichs langsam wie ichs angehen muss xD
    PHP-Code:
    <?php
    $zeichenkette 
    "abcdef";
    $suchmuster '/^def/';
    preg_match($suchmuster$zeichenkette$trefferPREG_OFFSET_CAPTURE3);
    print_r($treffer);
    ?>

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Zitat von b0arderking Beitrag anzeigen
    ich konnte nur keinen ansatz finden wie ich das machen soll ob mir jemand da helfen kann..
    Da frag ich wieder: Wobei helfen?
    Du hast keine konkrete Frage gestellt, außer "wer kann mir helfen?" - für mich impliziert das "ich kann nix und muss alles erläutert bekommen". So läuft das aber in diesem Forum nicht. Wir diskutieren gerne mit dir deinen Code, aber wir schreiben ihn dir nicht (zumindest nicht komplett).

    Wenn du Hilfe brauchst, werde konkret - allgemeine Fragen wie "wie geht das?" werden nicht beantwortet - es geht einfach nicht, weil es den Rahmen eines jeden Threads sprengen würde, wenn man bei Adam und Eva anfängt zu erklären.
    An konkreten Fragen erkennt man zumindest ein bischen den Wissensstand...

    Einen Kommentar schreiben:


  • b0arderking
    antwortet
    ich hab nie gesagt ihr müsst mir meine arbeit machen..
    ich konnte nur keinen ansatz finden wie ich das machen soll ob mir jemand da helfen kann..
    und jetzt bin ich am preg_match anschauen xD

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Geht einwandfrei der Link. Und Deine Arbeit machen wir hier nicht.

    Einen Kommentar schreiben:


  • b0arderking
    antwortet
    sorry zu erst kam nix :P
    ich werds mir mal anschauen

    Einen Kommentar schreiben:

Lädt...
X