2016-11-20 2 views
1

Ich habe eine Zeichenfolge wie die untenPrüfen, ob Array diesen Wert hat, und dann greifen sie und setzen es ein eine variable

20Nov 18: 14: 10 xxxxxxxxxx Punkte xxxxx gegeben hat. Neue Bitcoin-Sammlung Balance: XXXXXXXX. Ref: 675743957424

Ich werde es explodieren und es wird dann in ein Array verwandelt werden.

Aber ich möchte überprüfen, ob das Array Ref: 675743957424 und dann in eine Variable wie zum Beispiel $ a platzieren.

Ich möchte dies tun, da die Zeichenfolge von einem Punkt zu einem anderen wechseln kann, so dass die Position von Ref nicht festgelegt ist.

Wie kann ich so etwas erhalten?

Danke.

Herausgegeben

Ich versuchte, explodiert es nicht, sondern versuchen, stattdessen greifen die Daten sehen Code unten

<?php 
$line = "20Nov 18:14:xxxxxxxxxx has given 10 points to xxxxx. New bitcoin collection Balance:XXXXXXXX. Ref:675743957424"; 
// perform a case-Insensitive search for the word "Vi" 

    if (preg_match("/\bRef\b/i", $line, $match)) : 
    print "Match found!"; 
    //how can I grab the Ref part? 
    endif; 

>

+0

Sie wollen einfach nur ‚Ref‘ oder ‚Ref: Somenumbers‘ überprüfen –

+0

Ref: Somenumbers und dann muss ich es in einer Variablen platzieren. Danke – Ligthers

Antwort

1

Sie haben zu verwenden:

preg_match ('/Ref:[\d]*/', $line, $matches); 

Die Spiele wird gespeichert in Variable $matches und dann können Sie mit besagter ma arbeiten Tches. Die RegExp, müssen Sie nur nach Zeichenfolge suchen Ref: gefolgt von einer beliebigen Anzahl von Zahlen (\d sucht nach einer Ziffer und * sucht nach Null oder mehr Vorkommen des vorherigen Betreibers, Ziffern in diesem Fall).

Wenn Sie die genaue Anzahl der Stellen wissen, dass Sie müssen finden und es variiert nicht, dass Sie das Muster verwenden könnte {NUMBER}, wie:

preg_match ('/Ref:[\d]{12}/', $line, $matches); 

Dieser Fall, der Sie suchen 12 Stellen nach Ref:.

+1

Wenn Sie 'preg_match ('/ Ref: ([\ d] +) /', $ Zeile, $ passt)' dann '$ Übereinstimmungen 'wird 2 Werte enthalten, die vollständige Übereinstimmung und die Ref-Nummer, die ich vermute was du am Ende brauchst. Array etwas wie \t \t ( \t \t [0] => Ref: 675743957424 \t \t [1] => 675.743.957.424 \t) – phobia82

+0

Wenn das ist, was OP sucht, ich werde gerne Sie akzeptieren meine Antwort zu bearbeiten, das Hinzufügen diese Verbesserung. – Dez

0

Mit strpos() können Sie überprüfen, ob die Teilzeichenfolge in der Zeichenfolge vorhanden ist. Wenn es wahr ist, können Sie das Ihrem Variabel zuordnen. Bitte beachten Sie den folgenden Code, es kann Ihnen helfen.

$line = "20Nov 18:14:xxxxxxxxxx has given 10 points to xxxxx. New bitcoin collection Balance:XXXXXXXX. Ref:675743957424"; 
$string_to_check ='Ref:675743957424' 
if (strpos($line,$string_to_check) !== false) { //Ref is present 
    $a = $line; 
} 
+0

Dies ist nur gültig, wenn die Ref-Nummer immer gleich ist. In diesem Fall ist es einfacher, '$ a = 'Ref: 675743957424'' zu machen, was keinen Sinn ergibt. – phobia82

+0

Nein, wenn er dies als eine Variable setzen kann, wird es nach einem Teilstring suchen. –

+0

Durch den Kontext scheint es das Ergebnis einer Transaktion, es gibt keine Möglichkeit, dass er die Referenznummer im Voraus kennt. – phobia82

Verwandte Themen