$file = file_get_contents("http://www.bigsite.com");
我怎麼能去掉字符串$file
中包含單詞「hello」的所有行?PHP,從包含特定單詞的大字符串中刪除所有行
$file = file_get_contents("http://www.bigsite.com");
我怎麼能去掉字符串$file
中包含單詞「hello」的所有行?PHP,從包含特定單詞的大字符串中刪除所有行
$file = file_get_contents("http://www.example.com");
// remove sigle word hello
echo preg_replace('/(hello)/im', '', $file);
// remove multiple words hello, foo, bar, foobar
echo preg_replace('/(hello|foo|bar|foobar)/im', '', $file);
編輯刪除線
// read each file lines in array
$lines = file('http://example.com/');
// match single word hello
$pattern = '/(hello)/im';
// match multiple words hello, foo, bar, foobar
$pattern = '/(hello|foo|bar|foobar)/im';
$rows = array();
foreach ($lines as $key => $value) {
if (!preg_match($pattern, $value)) {
// lines not containing hello
$rows[] = $line;
}
}
// now create the paragraph again
echo implode("\n", $rows);
我需要整個行刪除,不僅字。 – 2013-03-02 02:11:46
這實際上只是移除了單詞的實例,而不是單詞出現的行,因爲這個問題需要。 – 2013-03-02 02:13:33
@CodeProtocol來自PHP手冊:「如果您只想檢查一個字符串是否包含在另一個字符串中,請不要使用preg_match(),因爲它們會更快,所以請使用strpos()或strstr()。 (http://php.net/manual/en/function.preg-match.php) – 2013-03-02 02:24:39
$file = file_get_contents("http://www.bigsite.com");
$lines = explode("\n", $file);
$exclude = array();
foreach ($lines as $line) {
if (strpos($line, 'hello') !== FALSE) {
continue;
}
$exclude[] = $line;
}
echo implode("\n", $exclude);
如果使用'file'而不是'file_get_contents',則可以跳過兩遍(一次將其讀入一個字符串,另一次將'爆炸'到字符串中)。 'file'將它直接讀入數組中。 – 2013-03-02 02:30:00
在這裏你去:
$file = file('http://www.bigsite.com');
foreach($file as $key=>$line) {
if(false !== strpos($line, 'hello')) {
unset $file[$key];
}
}
$file = implode("\n", $file);
哈哈,是的,但即時通訊問,因爲我敢肯定,那裏有一個更好的辦法,比我在做什麼它。是的,有:) – 2013-03-02 02:10:43