2012-03-06 116 views
-2

我有一個變量$結果,其中獲取的網頁內容使用curl存儲。我想搜索該變量或網頁,並找到某個字符串說x,然後將下一個5行存儲在一個新的變量。從PHP中的變量中獲取字符串?

我可以在PHP中做到嗎?

在此先感謝.......

+2

'我可以用PHP嗎?'是的,你可以! – Sarfraz 2012-03-06 16:38:06

+0

在字符串中搜索字符串很簡單 - 例如 - ['strpos()'](http://uk3.php.net/manual/en/function.strpos.php) - 但這裏的難點在於你如何定義'下5行'。如果你使用'fetched webpage contents',那麼[DOM解析器](http://uk3.php.net/manual/en/book.dom.php)可能是更好的選擇... – DaveRandom 2012-03-06 16:39:30

+1

當然可以!向我們展示您的第一次嘗試,然後我們會告訴您如何改進您的代碼。 – ghoti 2012-03-06 16:39:55

回答

1

你可以嘗試找到strpos位置

$findme = 'x'; 
$pos = strpos($result, $findme); 

然後substr結果(不確定有關linebreakes)。

或者使用正則表達式

看一看這裏:

http://php.net/manual/en/function.strpos.php http://php.net/manual/en/function.substr.php http://php.net/manual/en/function.preg-match.php

+0

tonymarschall,我已經試過了,我差不多完成了。現在主要的問題是我有要取出的字符串的起點,但由於要取出的字符串具有動態長度,但字符串結束後的內容每次都是相同的。那麼我應該怎麼做呢? – kanwarpal 2012-03-07 14:41:30

+0

如果字符串結尾已定義,請嘗試獲取字符串結尾的起始位置。然後添加strlength並將其與substr一起使用。 – tonymarschall 2012-03-07 15:07:56

1

您可以使用strpos()來在$ resulst中找到x的位置。

你可以從那個位置開始,在$ result('\ n')中查找接下來的5個換行符,然後構建一個新的字符串。

這應該工作。請先嚐試一下。如果您遇到問題,請發佈錯誤信息,我們可以爲您提供幫助。

+0

約翰內斯,我試過了,我差不多完成了。現在主要的問題是我有要取出的字符串的起點,但由於要取出的字符串具有動態長度,但字符串結束後的內容每次都是相同的。那麼我應該怎麼做呢? – kanwarpal 2012-03-07 14:40:49

0

我想你的問題改變了,現在你正在尋找兩個固定字符(或字符串)之間的字符串。

<?php 
$webpage_content = "Here 
is 
some text... 
#000001 This is an Error code! 
It can have multiple lines! 
!content 
This is normal content"; 


$start_element = "#"; 
$end_element = "!content"; 
$start_pos = strpos($webpage_content, $start_element); 
$en_post = strpos($webpage_content, $end_element); 

$my_string = substr($webpage_content, $start_pos, $en_post-$start_pos); 
print $my_string; 
?> 

您應該掌握所有信息,您需要解決您的問題。請閱讀我們發佈的鏈接。 PHP手冊以20多種語言提供。